mirror of
https://github.com/AskDavis/Casinotest.git
synced 2026-01-01 05:05:57 -08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57d4eef13f | ||
|
|
4de40d313d | ||
|
|
6984495957 |
20
COPYING
20
COPYING
@@ -1,8 +1,20 @@
|
||||
Copyright (c) 2009-2013 Bitcoin Developers
|
||||
Copyright (c) 2011-2015 CasinoCoin Developers
|
||||
Copyright (c) 2011-2013 CasinoCoin Developers
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
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 {}
|
||||
@@ -1,439 +0,0 @@
|
||||
TEMPLATE = app
|
||||
TARGET = casinocoin-qt
|
||||
macx:TARGET = "CasinoCoin-Qt"
|
||||
VERSION = 2.0.0.0
|
||||
INCLUDEPATH += src src/json src/qt
|
||||
QT += core gui network widgets qml quick
|
||||
DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE USE_IPV6 __NO_SYSTEM_INCLUDES
|
||||
CONFIG += no_include_pwd
|
||||
CONFIG += thread
|
||||
CONFIG += static
|
||||
|
||||
BOOST_INCLUDE_PATH=/home/ubuntu/CSC/deps/linux/boost_1_55_0
|
||||
BOOST_LIB_PATH=/home/ubuntu/CSC/deps/linux/boost_1_55_0/stage/lib
|
||||
BDB_INCLUDE_PATH=/home/ubuntu/CSC/deps/linux/db-4.8.30/build_unix
|
||||
BDB_LIB_PATH=/home/ubuntu/CSC/deps/linux/db-4.8.30/build_unix
|
||||
OPENSSL_INCLUDE_PATH=/home/ubuntu/CSC/deps/linux/openssl-1.0.2d/include
|
||||
OPENSSL_LIB_PATH=/home/ubuntu/CSC/deps/linux/openssl-1.0.2d
|
||||
MINIUPNPC_INCLUDE_PATH=/home/ubuntu/CSC/deps/linux/
|
||||
MINIUPNPC_LIB_PATH=/home/ubuntu/CSC/deps/linux/miniupnpc
|
||||
QRENCODE_INCLUDE_PATH=/home/ubuntu/CSC/deps/linux/qrencode-3.4.4
|
||||
QRENCODE_LIB_PATH=/home/ubuntu/CSC/deps/linux/qrencode-3.4.4/.libs
|
||||
|
||||
OBJECTS_DIR = build
|
||||
MOC_DIR = build
|
||||
UI_DIR = build
|
||||
|
||||
# use: qmake "RELEASE=1"
|
||||
contains(RELEASE, 1) {
|
||||
# Linux: static link and extra security (see: https://wiki.debian.org/Hardening)
|
||||
LIBS += -Wl,-Bstatic -Wl,-z,relro -Wl,-z,now
|
||||
}
|
||||
|
||||
# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
|
||||
QMAKE_CXXFLAGS *= -fstack-protector-all
|
||||
QMAKE_LFLAGS *= -fstack-protector-all
|
||||
|
||||
# for extra security (see: https://wiki.debian.org/Hardening): this flag is GCC compiler-specific
|
||||
QMAKE_CXXFLAGS *= -D_FORTIFY_SOURCE=2
|
||||
|
||||
# use: qmake "USE_QRCODE=1"
|
||||
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
|
||||
contains(USE_QRCODE, 1) {
|
||||
message(Building with QRCode support)
|
||||
DEFINES += USE_QRCODE
|
||||
#LIBS += -lqrencode
|
||||
LIBS += -lqrencode $$join(QRENCODE_LIB_PATH,,-L,)
|
||||
}
|
||||
|
||||
# use: qmake "USE_UPNP=1" ( enabled by default; default)
|
||||
# or: qmake "USE_UPNP=0" (disabled by default)
|
||||
# or: qmake "USE_UPNP=-" (not supported)
|
||||
# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
|
||||
contains(USE_UPNP, -) {
|
||||
message(Building without UPNP support)
|
||||
} else {
|
||||
message(Building with UPNP support)
|
||||
count(USE_UPNP, 0) {
|
||||
USE_UPNP=1
|
||||
}
|
||||
DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
|
||||
INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
|
||||
LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
|
||||
}
|
||||
|
||||
# use: qmake "USE_DBUS=1"
|
||||
contains(USE_DBUS, 1) {
|
||||
message(Building with DBUS (Freedesktop notifications) support)
|
||||
DEFINES += USE_DBUS
|
||||
QT += dbus
|
||||
}
|
||||
|
||||
# use: qmake "USE_IPV6=1" ( enabled by default; default)
|
||||
# or: qmake "USE_IPV6=0" (disabled by default)
|
||||
# or: qmake "USE_IPV6=-" (not supported)
|
||||
contains(USE_IPV6, -) {
|
||||
message(Building without IPv6 support)
|
||||
} else {
|
||||
count(USE_IPV6, 0) {
|
||||
USE_IPV6=1
|
||||
}
|
||||
DEFINES += USE_IPV6=$$USE_IPV6
|
||||
}
|
||||
|
||||
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
||||
DEFINES += BITCOIN_NEED_QT_PLUGINS
|
||||
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
|
||||
}
|
||||
|
||||
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
|
||||
LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
|
||||
|
||||
# we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences
|
||||
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a
|
||||
genleveldb.target = $$PWD/src/leveldb/libleveldb.a
|
||||
genleveldb.depends = FORCE
|
||||
PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
|
||||
QMAKE_EXTRA_TARGETS += genleveldb
|
||||
# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
|
||||
QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
|
||||
|
||||
# regenerate src/build.h
|
||||
genbuild.depends = FORCE
|
||||
genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
|
||||
genbuild.target = $$OUT_PWD/build/build.h
|
||||
PRE_TARGETDEPS += $$OUT_PWD/build/build.h
|
||||
QMAKE_EXTRA_TARGETS += genbuild
|
||||
DEFINES += HAVE_BUILD_INFO
|
||||
|
||||
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-strict-aliasing -Wstack-protector
|
||||
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs
|
||||
|
||||
|
||||
##### Start Project Files #####
|
||||
|
||||
DEPENDPATH += src src/json src/qt
|
||||
HEADERS += src/qt/bitcoingui.h \
|
||||
src/qt/transactiontablemodel.h \
|
||||
src/qt/addresstablemodel.h \
|
||||
src/qt/optionsdialog.h \
|
||||
src/qt/sendcoinsdialog.h \
|
||||
src/qt/coincontroldialog.h \
|
||||
src/qt/coincontroltreewidget.h \
|
||||
src/qt/addressbookpage.h \
|
||||
src/qt/signverifymessagedialog.h \
|
||||
src/qt/aboutdialog.h \
|
||||
src/qt/editaddressdialog.h \
|
||||
src/qt/bitcoinaddressvalidator.h \
|
||||
src/alert.h \
|
||||
src/addrman.h \
|
||||
src/base58.h \
|
||||
src/bignum.h \
|
||||
src/checkpoints.h \
|
||||
src/coincontrol.h \
|
||||
src/compat.h \
|
||||
src/sync.h \
|
||||
src/util.h \
|
||||
src/hash.h \
|
||||
src/uint256.h \
|
||||
src/serialize.h \
|
||||
src/main.h \
|
||||
src/net.h \
|
||||
src/key.h \
|
||||
src/db.h \
|
||||
src/walletdb.h \
|
||||
src/script.h \
|
||||
src/init.h \
|
||||
src/bloom.h \
|
||||
src/mruset.h \
|
||||
src/checkqueue.h \
|
||||
src/json/json_spirit_writer_template.h \
|
||||
src/json/json_spirit_writer.h \
|
||||
src/json/json_spirit_value.h \
|
||||
src/json/json_spirit_utils.h \
|
||||
src/json/json_spirit_stream_reader.h \
|
||||
src/json/json_spirit_reader_template.h \
|
||||
src/json/json_spirit_reader.h \
|
||||
src/json/json_spirit_error_position.h \
|
||||
src/json/json_spirit.h \
|
||||
src/qt/clientmodel.h \
|
||||
src/qt/guiutil.h \
|
||||
src/qt/transactionrecord.h \
|
||||
src/qt/guiconstants.h \
|
||||
src/qt/optionsmodel.h \
|
||||
src/qt/monitoreddatamapper.h \
|
||||
src/qt/transactiondesc.h \
|
||||
src/qt/transactiondescdialog.h \
|
||||
src/qt/bitcoinamountfield.h \
|
||||
src/wallet.h \
|
||||
src/keystore.h \
|
||||
src/qt/transactionfilterproxy.h \
|
||||
src/qt/transactionview.h \
|
||||
src/qt/walletmodel.h \
|
||||
src/qt/walletview.h \
|
||||
src/qt/walletstack.h \
|
||||
src/qt/walletframe.h \
|
||||
src/bitcoinrpc.h \
|
||||
src/qt/overviewpage.h \
|
||||
src/qt/csvmodelwriter.h \
|
||||
src/crypter.h \
|
||||
src/qt/sendcoinsentry.h \
|
||||
src/qt/qvalidatedlineedit.h \
|
||||
src/qt/bitcoinunits.h \
|
||||
src/qt/qvaluecombobox.h \
|
||||
src/qt/askpassphrasedialog.h \
|
||||
src/protocol.h \
|
||||
src/qt/notificator.h \
|
||||
src/qt/paymentserver.h \
|
||||
src/allocators.h \
|
||||
src/ui_interface.h \
|
||||
src/qt/rpcconsole.h \
|
||||
src/scrypt.h \
|
||||
src/version.h \
|
||||
src/netbase.h \
|
||||
src/clientversion.h \
|
||||
src/txdb.h \
|
||||
src/leveldb.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/jsonactiveexchangesparser.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.h \
|
||||
src/qt/gui20_skin.h \
|
||||
src/qt/cscfusionstyle.h \
|
||||
src/qt/pryptopage.h \
|
||||
src/qt/currencies.h \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.h \
|
||||
src/qt/infopage.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.h
|
||||
|
||||
SOURCES += src/qt/bitcoin.cpp \
|
||||
src/qt/bitcoingui.cpp \
|
||||
src/qt/transactiontablemodel.cpp \
|
||||
src/qt/addresstablemodel.cpp \
|
||||
src/qt/optionsdialog.cpp \
|
||||
src/qt/sendcoinsdialog.cpp \
|
||||
src/qt/coincontroldialog.cpp \
|
||||
src/qt/coincontroltreewidget.cpp \
|
||||
src/qt/addressbookpage.cpp \
|
||||
src/qt/signverifymessagedialog.cpp \
|
||||
src/qt/aboutdialog.cpp \
|
||||
src/qt/editaddressdialog.cpp \
|
||||
src/qt/bitcoinaddressvalidator.cpp \
|
||||
src/alert.cpp \
|
||||
src/version.cpp \
|
||||
src/sync.cpp \
|
||||
src/util.cpp \
|
||||
src/hash.cpp \
|
||||
src/netbase.cpp \
|
||||
src/key.cpp \
|
||||
src/script.cpp \
|
||||
src/main.cpp \
|
||||
src/init.cpp \
|
||||
src/net.cpp \
|
||||
src/bloom.cpp \
|
||||
src/checkpoints.cpp \
|
||||
src/addrman.cpp \
|
||||
src/db.cpp \
|
||||
src/walletdb.cpp \
|
||||
src/qt/clientmodel.cpp \
|
||||
src/qt/guiutil.cpp \
|
||||
src/qt/transactionrecord.cpp \
|
||||
src/qt/optionsmodel.cpp \
|
||||
src/qt/monitoreddatamapper.cpp \
|
||||
src/qt/transactiondesc.cpp \
|
||||
src/qt/transactiondescdialog.cpp \
|
||||
src/qt/bitcoinstrings.cpp \
|
||||
src/qt/bitcoinamountfield.cpp \
|
||||
src/wallet.cpp \
|
||||
src/keystore.cpp \
|
||||
src/qt/transactionfilterproxy.cpp \
|
||||
src/qt/transactionview.cpp \
|
||||
src/qt/walletmodel.cpp \
|
||||
src/qt/walletview.cpp \
|
||||
src/qt/walletstack.cpp \
|
||||
src/qt/walletframe.cpp \
|
||||
src/bitcoinrpc.cpp \
|
||||
src/rpcdump.cpp \
|
||||
src/rpcnet.cpp \
|
||||
src/rpcmining.cpp \
|
||||
src/rpcwallet.cpp \
|
||||
src/rpcblockchain.cpp \
|
||||
src/rpcrawtransaction.cpp \
|
||||
src/qt/overviewpage.cpp \
|
||||
src/qt/csvmodelwriter.cpp \
|
||||
src/crypter.cpp \
|
||||
src/qt/sendcoinsentry.cpp \
|
||||
src/qt/qvalidatedlineedit.cpp \
|
||||
src/qt/bitcoinunits.cpp \
|
||||
src/qt/qvaluecombobox.cpp \
|
||||
src/qt/askpassphrasedialog.cpp \
|
||||
src/protocol.cpp \
|
||||
src/qt/notificator.cpp \
|
||||
src/qt/paymentserver.cpp \
|
||||
src/qt/rpcconsole.cpp \
|
||||
src/scrypt.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/jsonactiveexchangesparser.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.cpp \
|
||||
src/qt/gui20_skin.cpp \
|
||||
src/qt/cscfusionstyle.cpp \
|
||||
src/qt/pryptopage.cpp \
|
||||
src/qt/currencies.cpp \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.cpp \
|
||||
src/qt/infopage.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.cpp
|
||||
|
||||
RESOURCES += src/qt/bitcoin.qrc
|
||||
|
||||
FORMS += src/qt/forms/sendcoinsdialog.ui \
|
||||
src/qt/forms/coincontroldialog.ui \
|
||||
src/qt/forms/addressbookpage.ui \
|
||||
src/qt/forms/signverifymessagedialog.ui \
|
||||
src/qt/forms/aboutdialog.ui \
|
||||
src/qt/forms/editaddressdialog.ui \
|
||||
src/qt/forms/transactiondescdialog.ui \
|
||||
src/qt/forms/overviewpage.ui \
|
||||
src/qt/forms/sendcoinsentry.ui \
|
||||
src/qt/forms/askpassphrasedialog.ui \
|
||||
src/qt/forms/rpcconsole.ui \
|
||||
src/qt/forms/optionsdialog.ui \
|
||||
src/qt/forms/pryptopage.ui \
|
||||
src/qt/forms/infopage.ui
|
||||
|
||||
# "Other files" to show in Qt Creator
|
||||
OTHER_FILES += README.md \
|
||||
doc/*.rst \
|
||||
doc/*.txt \
|
||||
doc/*.md \
|
||||
src/qt/res/bitcoin-qt.rc \
|
||||
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/qtquick_controls/qml/QmlGUIExchangesControl.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarControl.qml
|
||||
|
||||
DISTFILES += \
|
||||
QmlImports.qml
|
||||
|
||||
##### End Project Files #####
|
||||
|
||||
contains(USE_QRCODE, 1) {
|
||||
HEADERS += src/qt/qrcodedialog.h
|
||||
SOURCES += src/qt/qrcodedialog.cpp
|
||||
FORMS += src/qt/forms/qrcodedialog.ui
|
||||
}
|
||||
|
||||
contains(BITCOIN_QT_TEST, 1) {
|
||||
SOURCES += src/qt/test/test_main.cpp \
|
||||
src/qt/test/uritests.cpp
|
||||
HEADERS += src/qt/test/uritests.h
|
||||
DEPENDPATH += src/qt/test
|
||||
QT += testlib
|
||||
TARGET = casinocoin-qt_test
|
||||
DEFINES += BITCOIN_QT_TEST
|
||||
}
|
||||
|
||||
contains(USE_SSE2, 1) {
|
||||
DEFINES += USE_SSE2
|
||||
gccsse2.input = SOURCES_SSE2
|
||||
gccsse2.output = $$PWD/build/${QMAKE_FILE_BASE}.o
|
||||
gccsse2.commands = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -msse2 -mstackrealign
|
||||
QMAKE_EXTRA_COMPILERS += gccsse2
|
||||
SOURCES_SSE2 += src/scrypt-sse2.cpp
|
||||
}
|
||||
|
||||
# for lrelease/lupdate
|
||||
# also add new translations to src/qt/bitcoin.qrc under translations/
|
||||
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
|
||||
|
||||
isEmpty(QMAKE_LRELEASE) {
|
||||
QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
||||
}
|
||||
|
||||
isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
|
||||
# automatically build translations, so they can be included in resource file
|
||||
TSQM.name = lrelease ${QMAKE_FILE_IN}
|
||||
TSQM.input = TRANSLATIONS
|
||||
TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm
|
||||
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
||||
TSQM.CONFIG = no_link
|
||||
QMAKE_EXTRA_COMPILERS += TSQM
|
||||
|
||||
isEmpty(BOOST_THREAD_LIB_SUFFIX) {
|
||||
BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
|
||||
}
|
||||
|
||||
DEFINES += LINUX
|
||||
LIBS += -lrt
|
||||
# _FILE_OFFSET_BITS=64 lets 32-bit fopen transparently support large files.
|
||||
DEFINES += _FILE_OFFSET_BITS=64
|
||||
|
||||
# Set libraries and includes at end, to use platform-defined defaults if not overridden
|
||||
INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
|
||||
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
|
||||
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX -lpthread
|
||||
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
|
||||
|
||||
contains(RELEASE, 1) {
|
||||
# Linux: turn dynamic linking back on for c/c++ runtime libraries
|
||||
LIBS += -Wl,-Bdynamic
|
||||
}
|
||||
|
||||
system($$QMAKE_LRELEASE -silent $$TRANSLATIONS)
|
||||
@@ -1,271 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 3.5.0, 2015-12-02T00:40:08. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{af9fddb2-7bcb-4144-bdf3-55c932c19fe1}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.5.1 Static (qt5)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.5.1 Static (qt5)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{86a38728-97f7-49ac-b7f5-0ca2720c2f29}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/ubuntu/CSC/casinocoin-2.0.0.0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">USE_UPNP=0 USE_QRCODE=1 USE_IPV6=1</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/ubuntu/CSC/casinocoin-2.0.0.0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">USE_UPNP=0 USE_QRCODE=1 USE_IPV6=1</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">casinocoin-qt-linux</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/ubuntu/CSC/casinocoin-2.0.0.0/casinocoin-qt-linux.pro</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">casinocoin-qt-linux.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
@@ -1,460 +0,0 @@
|
||||
TEMPLATE = app
|
||||
TARGET = casinocoin-qt
|
||||
macx:TARGET = "CasinoCoin-Qt"
|
||||
VERSION = 2.0.0.0
|
||||
INCLUDEPATH += src src/json src/qt
|
||||
QT += core gui network widgets qml quick
|
||||
DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE USE_IPV6 __NO_SYSTEM_INCLUDES
|
||||
CONFIG += no_include_pwd
|
||||
CONFIG += thread
|
||||
CONFIG += static
|
||||
|
||||
BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
|
||||
BOOST_THREAD_LIB_SUFFIX=$$BOOST_LIB_SUFFIX
|
||||
BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
|
||||
BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
|
||||
BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix
|
||||
BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix
|
||||
BDB_LIB_SUFFIX=-4.8
|
||||
OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.2d/include
|
||||
OPENSSL_LIB_PATH=C:/deps/openssl-1.0.2d
|
||||
MINIUPNPC_INCLUDE_PATH=C:/deps/
|
||||
MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
|
||||
QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.3
|
||||
QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.3/.libs
|
||||
|
||||
OBJECTS_DIR = build
|
||||
MOC_DIR = build
|
||||
UI_DIR = build
|
||||
|
||||
# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
|
||||
QMAKE_CXXFLAGS *= -fstack-protector-all
|
||||
QMAKE_LFLAGS *= -fstack-protector-all
|
||||
# Exclude on Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable!
|
||||
# This can be enabled for Windows, when we switch to MinGW >= 4.4.x.
|
||||
|
||||
# for extra security (see: https://wiki.debian.org/Hardening): this flag is GCC compiler-specific
|
||||
QMAKE_CXXFLAGS *= -D_FORTIFY_SOURCE=2
|
||||
# for extra security on Windows: enable ASLR and DEP via GCC linker flags
|
||||
QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat
|
||||
# on Windows: enable GCC large address aware linker flag
|
||||
QMAKE_LFLAGS *= -Wl,--large-address-aware
|
||||
# i686-w64-mingw32
|
||||
QMAKE_LFLAGS *= -static-libgcc -static-libstdc++
|
||||
|
||||
# use: qmake "USE_QRCODE=1"
|
||||
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
|
||||
contains(USE_QRCODE, 1) {
|
||||
message(Building with QRCode support)
|
||||
DEFINES += USE_QRCODE
|
||||
#LIBS += -lqrencode
|
||||
LIBS += -lqrencode $$join(QRENCODE_LIB_PATH,,-L,)
|
||||
}
|
||||
|
||||
# use: qmake "USE_UPNP=1" ( enabled by default; default)
|
||||
# or: qmake "USE_UPNP=0" (disabled by default)
|
||||
# or: qmake "USE_UPNP=-" (not supported)
|
||||
# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
|
||||
contains(USE_UPNP, -) {
|
||||
message(Building without UPNP support)
|
||||
} else {
|
||||
message(Building with UPNP support)
|
||||
count(USE_UPNP, 0) {
|
||||
USE_UPNP=1
|
||||
}
|
||||
DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
|
||||
INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
|
||||
LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
|
||||
LIBS += -liphlpapi
|
||||
}
|
||||
|
||||
# use: qmake "USE_DBUS=1"
|
||||
contains(USE_DBUS, 1) {
|
||||
message(Building with DBUS (Freedesktop notifications) support)
|
||||
DEFINES += USE_DBUS
|
||||
QT += dbus
|
||||
}
|
||||
|
||||
# use: qmake "USE_IPV6=1" ( enabled by default; default)
|
||||
# or: qmake "USE_IPV6=0" (disabled by default)
|
||||
# or: qmake "USE_IPV6=-" (not supported)
|
||||
contains(USE_IPV6, -) {
|
||||
message(Building without IPv6 support)
|
||||
} else {
|
||||
count(USE_IPV6, 0) {
|
||||
USE_IPV6=1
|
||||
}
|
||||
DEFINES += USE_IPV6=$$USE_IPV6
|
||||
}
|
||||
|
||||
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
||||
DEFINES += BITCOIN_NEED_QT_PLUGINS
|
||||
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
|
||||
}
|
||||
|
||||
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
|
||||
LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
|
||||
# make an educated guess about what the ranlib command is called
|
||||
isEmpty(QMAKE_RANLIB) {
|
||||
QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
|
||||
}
|
||||
LIBS += -lshlwapi
|
||||
genleveldb.target = $$PWD/src/leveldb/libleveldb.a
|
||||
genleveldb.depends = FORCE
|
||||
PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
|
||||
QMAKE_EXTRA_TARGETS += genleveldb
|
||||
# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
|
||||
# On windows manually execute: make TARGET_OS=OS_WINDOWS_CROSSCOMPILE libleveldb.a libmemenv.a
|
||||
QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a;
|
||||
|
||||
# regenerate src/build.h
|
||||
contains(USE_BUILD_INFO, 1) {
|
||||
genbuild.depends = FORCE
|
||||
genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
|
||||
genbuild.target = $$OUT_PWD/build/build.h
|
||||
PRE_TARGETDEPS += $$OUT_PWD/build/build.h
|
||||
QMAKE_EXTRA_TARGETS += genbuild
|
||||
DEFINES += HAVE_BUILD_INFO
|
||||
}
|
||||
|
||||
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-strict-aliasing -Wstack-protector
|
||||
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs
|
||||
|
||||
##### Start Project Files #####
|
||||
|
||||
DEPENDPATH += src src/json src/qt
|
||||
HEADERS += src/qt/bitcoingui.h \
|
||||
src/qt/transactiontablemodel.h \
|
||||
src/qt/addresstablemodel.h \
|
||||
src/qt/optionsdialog.h \
|
||||
src/qt/sendcoinsdialog.h \
|
||||
src/qt/coincontroldialog.h \
|
||||
src/qt/coincontroltreewidget.h \
|
||||
src/qt/addressbookpage.h \
|
||||
src/qt/signverifymessagedialog.h \
|
||||
src/qt/aboutdialog.h \
|
||||
src/qt/editaddressdialog.h \
|
||||
src/qt/bitcoinaddressvalidator.h \
|
||||
src/alert.h \
|
||||
src/addrman.h \
|
||||
src/base58.h \
|
||||
src/bignum.h \
|
||||
src/checkpoints.h \
|
||||
src/coincontrol.h \
|
||||
src/compat.h \
|
||||
src/sync.h \
|
||||
src/util.h \
|
||||
src/hash.h \
|
||||
src/uint256.h \
|
||||
src/serialize.h \
|
||||
src/main.h \
|
||||
src/net.h \
|
||||
src/key.h \
|
||||
src/db.h \
|
||||
src/walletdb.h \
|
||||
src/script.h \
|
||||
src/init.h \
|
||||
src/bloom.h \
|
||||
src/mruset.h \
|
||||
src/checkqueue.h \
|
||||
src/json/json_spirit_writer_template.h \
|
||||
src/json/json_spirit_writer.h \
|
||||
src/json/json_spirit_value.h \
|
||||
src/json/json_spirit_utils.h \
|
||||
src/json/json_spirit_stream_reader.h \
|
||||
src/json/json_spirit_reader_template.h \
|
||||
src/json/json_spirit_reader.h \
|
||||
src/json/json_spirit_error_position.h \
|
||||
src/json/json_spirit.h \
|
||||
src/qt/clientmodel.h \
|
||||
src/qt/guiutil.h \
|
||||
src/qt/transactionrecord.h \
|
||||
src/qt/guiconstants.h \
|
||||
src/qt/optionsmodel.h \
|
||||
src/qt/monitoreddatamapper.h \
|
||||
src/qt/transactiondesc.h \
|
||||
src/qt/transactiondescdialog.h \
|
||||
src/qt/bitcoinamountfield.h \
|
||||
src/wallet.h \
|
||||
src/keystore.h \
|
||||
src/qt/transactionfilterproxy.h \
|
||||
src/qt/transactionview.h \
|
||||
src/qt/walletmodel.h \
|
||||
src/qt/walletview.h \
|
||||
src/qt/walletstack.h \
|
||||
src/qt/walletframe.h \
|
||||
src/bitcoinrpc.h \
|
||||
src/qt/overviewpage.h \
|
||||
src/qt/csvmodelwriter.h \
|
||||
src/crypter.h \
|
||||
src/qt/sendcoinsentry.h \
|
||||
src/qt/qvalidatedlineedit.h \
|
||||
src/qt/bitcoinunits.h \
|
||||
src/qt/qvaluecombobox.h \
|
||||
src/qt/askpassphrasedialog.h \
|
||||
src/protocol.h \
|
||||
src/qt/notificator.h \
|
||||
src/qt/paymentserver.h \
|
||||
src/allocators.h \
|
||||
src/ui_interface.h \
|
||||
src/qt/rpcconsole.h \
|
||||
src/scrypt.h \
|
||||
src/version.h \
|
||||
src/netbase.h \
|
||||
src/clientversion.h \
|
||||
src/txdb.h \
|
||||
src/leveldb.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/jsonactiveexchangesparser.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.h \
|
||||
src/qt/gui20_skin.h \
|
||||
src/qt/cscfusionstyle.h \
|
||||
src/qt/pryptopage.h \
|
||||
src/qt/currencies.h \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.h \
|
||||
src/qt/infopage.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.h
|
||||
|
||||
SOURCES += src/qt/bitcoin.cpp \
|
||||
src/qt/bitcoingui.cpp \
|
||||
src/qt/transactiontablemodel.cpp \
|
||||
src/qt/addresstablemodel.cpp \
|
||||
src/qt/optionsdialog.cpp \
|
||||
src/qt/sendcoinsdialog.cpp \
|
||||
src/qt/coincontroldialog.cpp \
|
||||
src/qt/coincontroltreewidget.cpp \
|
||||
src/qt/addressbookpage.cpp \
|
||||
src/qt/signverifymessagedialog.cpp \
|
||||
src/qt/aboutdialog.cpp \
|
||||
src/qt/editaddressdialog.cpp \
|
||||
src/qt/bitcoinaddressvalidator.cpp \
|
||||
src/alert.cpp \
|
||||
src/version.cpp \
|
||||
src/sync.cpp \
|
||||
src/util.cpp \
|
||||
src/hash.cpp \
|
||||
src/netbase.cpp \
|
||||
src/key.cpp \
|
||||
src/script.cpp \
|
||||
src/main.cpp \
|
||||
src/init.cpp \
|
||||
src/net.cpp \
|
||||
src/bloom.cpp \
|
||||
src/checkpoints.cpp \
|
||||
src/addrman.cpp \
|
||||
src/db.cpp \
|
||||
src/walletdb.cpp \
|
||||
src/qt/clientmodel.cpp \
|
||||
src/qt/guiutil.cpp \
|
||||
src/qt/transactionrecord.cpp \
|
||||
src/qt/optionsmodel.cpp \
|
||||
src/qt/monitoreddatamapper.cpp \
|
||||
src/qt/transactiondesc.cpp \
|
||||
src/qt/transactiondescdialog.cpp \
|
||||
src/qt/bitcoinstrings.cpp \
|
||||
src/qt/bitcoinamountfield.cpp \
|
||||
src/wallet.cpp \
|
||||
src/keystore.cpp \
|
||||
src/qt/transactionfilterproxy.cpp \
|
||||
src/qt/transactionview.cpp \
|
||||
src/qt/walletmodel.cpp \
|
||||
src/qt/walletview.cpp \
|
||||
src/qt/walletstack.cpp \
|
||||
src/qt/walletframe.cpp \
|
||||
src/bitcoinrpc.cpp \
|
||||
src/rpcdump.cpp \
|
||||
src/rpcnet.cpp \
|
||||
src/rpcmining.cpp \
|
||||
src/rpcwallet.cpp \
|
||||
src/rpcblockchain.cpp \
|
||||
src/rpcrawtransaction.cpp \
|
||||
src/qt/overviewpage.cpp \
|
||||
src/qt/csvmodelwriter.cpp \
|
||||
src/crypter.cpp \
|
||||
src/qt/sendcoinsentry.cpp \
|
||||
src/qt/qvalidatedlineedit.cpp \
|
||||
src/qt/bitcoinunits.cpp \
|
||||
src/qt/qvaluecombobox.cpp \
|
||||
src/qt/askpassphrasedialog.cpp \
|
||||
src/protocol.cpp \
|
||||
src/qt/notificator.cpp \
|
||||
src/qt/paymentserver.cpp \
|
||||
src/qt/rpcconsole.cpp \
|
||||
src/scrypt.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/jsonactiveexchangesparser.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.cpp \
|
||||
src/qt/gui20_skin.cpp \
|
||||
src/qt/cscfusionstyle.cpp \
|
||||
src/qt/pryptopage.cpp \
|
||||
src/qt/currencies.cpp \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.cpp \
|
||||
src/qt/infopage.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.cpp
|
||||
|
||||
RESOURCES += src/qt/bitcoin.qrc
|
||||
|
||||
FORMS += src/qt/forms/sendcoinsdialog.ui \
|
||||
src/qt/forms/coincontroldialog.ui \
|
||||
src/qt/forms/addressbookpage.ui \
|
||||
src/qt/forms/signverifymessagedialog.ui \
|
||||
src/qt/forms/aboutdialog.ui \
|
||||
src/qt/forms/editaddressdialog.ui \
|
||||
src/qt/forms/transactiondescdialog.ui \
|
||||
src/qt/forms/overviewpage.ui \
|
||||
src/qt/forms/sendcoinsentry.ui \
|
||||
src/qt/forms/askpassphrasedialog.ui \
|
||||
src/qt/forms/rpcconsole.ui \
|
||||
src/qt/forms/optionsdialog.ui \
|
||||
src/qt/forms/pryptopage.ui \
|
||||
src/qt/forms/infopage.ui
|
||||
|
||||
OTHER_FILES += README.md \
|
||||
doc/*.rst \
|
||||
doc/*.txt \
|
||||
doc/*.md \
|
||||
src/qt/res/bitcoin-qt.rc \
|
||||
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/qtquick_controls/qml/QmlGUIExchangesControl.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarControl.qml
|
||||
|
||||
DISTFILES += \
|
||||
QmlImports.qml
|
||||
|
||||
##### End Project Files #####
|
||||
|
||||
contains(USE_QRCODE, 1) {
|
||||
HEADERS += src/qt/qrcodedialog.h
|
||||
SOURCES += src/qt/qrcodedialog.cpp
|
||||
FORMS += src/qt/forms/qrcodedialog.ui
|
||||
}
|
||||
|
||||
contains(BITCOIN_QT_TEST, 1) {
|
||||
SOURCES += src/qt/test/test_main.cpp \
|
||||
src/qt/test/uritests.cpp
|
||||
HEADERS += src/qt/test/uritests.h
|
||||
DEPENDPATH += src/qt/test
|
||||
QT += testlib
|
||||
TARGET = casinocoin-qt_test
|
||||
DEFINES += BITCOIN_QT_TEST
|
||||
}
|
||||
|
||||
contains(USE_SSE2, 1) {
|
||||
DEFINES += USE_SSE2
|
||||
gccsse2.input = SOURCES_SSE2
|
||||
gccsse2.output = $$PWD/build/${QMAKE_FILE_BASE}.o
|
||||
gccsse2.commands = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -msse2 -mstackrealign
|
||||
QMAKE_EXTRA_COMPILERS += gccsse2
|
||||
SOURCES_SSE2 += src/scrypt-sse2.cpp
|
||||
}
|
||||
|
||||
# for lrelease/lupdate
|
||||
# also add new translations to src/qt/bitcoin.qrc under translations/
|
||||
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
|
||||
|
||||
isEmpty(QMAKE_LRELEASE) {
|
||||
QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
||||
}
|
||||
|
||||
isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
|
||||
# automatically build translations, so they can be included in resource file
|
||||
TSQM.name = lrelease ${QMAKE_FILE_IN}
|
||||
TSQM.input = TRANSLATIONS
|
||||
TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm
|
||||
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
||||
TSQM.CONFIG = no_link
|
||||
QMAKE_EXTRA_COMPILERS += TSQM
|
||||
|
||||
# platform specific defaults, if not overridden on command line
|
||||
isEmpty(BOOST_LIB_SUFFIX) {
|
||||
BOOST_LIB_SUFFIX = -mgw46-mt-s-1_53
|
||||
}
|
||||
|
||||
isEmpty(BOOST_THREAD_LIB_SUFFIX) {
|
||||
BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
|
||||
}
|
||||
|
||||
DEFINES += WIN32
|
||||
RC_FILE = src/qt/res/bitcoin-qt.rc
|
||||
|
||||
!contains(MINGW_THREAD_BUGFIX, 0) {
|
||||
# At least qmake's win32-g++-cross profile is missing the -lmingwthrd
|
||||
# thread-safety flag. GCC has -mthreads to enable this, but it doesn't
|
||||
# work with static linking. -lmingwthrd must come BEFORE -lmingw, so
|
||||
# it is prepended to QMAKE_LIBS_QT_ENTRY.
|
||||
# It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
|
||||
# any problems on some untested qmake profile now or in the future.
|
||||
DEFINES += _MT
|
||||
QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
|
||||
}
|
||||
|
||||
# Set libraries and includes at end, to use platform-defined defaults if not overridden
|
||||
INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
|
||||
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
|
||||
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX -lpthread
|
||||
# -lgdi32 has to happen after -lcrypto (see #681)
|
||||
LIBS += -lws2_32 -lole32 -lmswsock -loleaut32 -luuid -lgdi32 -lshlwapi
|
||||
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
|
||||
LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
|
||||
|
||||
system($$QMAKE_LRELEASE -silent $$TRANSLATIONS)
|
||||
@@ -1,259 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 3.5.0, 2015-12-01T22:30:06. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{5cb6bc84-6e3a-4b8c-88a9-7054f966d617}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.5.1 MinGW Static 32bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.5.1 MinGW Static 32bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{7d14dbc8-0402-4b0e-98cc-9747e8c52c07}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/a.jochems/Documents/GitHub/casinocoin-GUI-2.0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">USE_UPNP=0 USE_QRCODE=1 USE_IPV6=1</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/a.jochems/Documents/GitHub/casinocoin-GUI-2.0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">USE_UPNP=0 USE_QRCODE=1 USE_IPV6=1</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">casinocoin-qt-windows</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/a.jochems/Documents/GitHub/casinocoin-GUI-2.0/casinocoin-qt-windows.pro</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">casinocoin-qt-windows.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
@@ -1,13 +1,13 @@
|
||||
TEMPLATE = app
|
||||
TARGET = casinocoin-qt
|
||||
macx:TARGET = "CasinoCoin-Qt"
|
||||
VERSION = 2.0.0.0
|
||||
VERSION = 1.3.0.0
|
||||
INCLUDEPATH += src src/json src/qt
|
||||
QT += core gui network widgets qml 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
|
||||
CONFIG += thread
|
||||
CONFIG += static
|
||||
|
||||
# for boost 1.37, add -mt to the boost libraries
|
||||
# use: qmake BOOST_LIB_SUFFIX=-mt
|
||||
@@ -259,38 +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/jsonactiveexchangesparser.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.h \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.h \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.h \
|
||||
src/qt/gui20_skin.h \
|
||||
src/qt/cscfusionstyle.h \
|
||||
src/qt/pryptopage.h \
|
||||
src/qt/currencies.h \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.h \
|
||||
src/qt/infopage.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.h \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.h \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.h
|
||||
src/qt/splashscreen.h
|
||||
|
||||
SOURCES += src/qt/bitcoin.cpp \
|
||||
src/qt/bitcoingui.cpp \
|
||||
@@ -361,38 +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/jsonactiveexchangesparser.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactivepromotion.cpp \
|
||||
src/qt/CSCPublicAPI/jsonsingleactiveexchange.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/qtquick_controls/cpp/qmlmenutoolbarmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlmenutoolbaritem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarwidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarlistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guimenutoolbarcontrol.cpp \
|
||||
src/qt/gui20_skin.cpp \
|
||||
src/qt/cscfusionstyle.cpp \
|
||||
src/qt/pryptopage.cpp \
|
||||
src/qt/currencies.cpp \
|
||||
src/qt/CSCPublicAPI/jsoncoininfoparser.cpp \
|
||||
src/qt/infopage.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeswidget.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistmodel.cpp \
|
||||
src/qt/qtquick_controls/cpp/qmlexchangeslistitem.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangeslistview.cpp \
|
||||
src/qt/qtquick_controls/cpp/guiexchangescontrol.cpp
|
||||
|
||||
src/qt/splashscreen.cpp
|
||||
|
||||
RESOURCES += src/qt/bitcoin.qrc
|
||||
|
||||
@@ -407,9 +345,7 @@ FORMS += src/qt/forms/sendcoinsdialog.ui \
|
||||
src/qt/forms/sendcoinsentry.ui \
|
||||
src/qt/forms/askpassphrasedialog.ui \
|
||||
src/qt/forms/rpcconsole.ui \
|
||||
src/qt/forms/optionsdialog.ui \
|
||||
src/qt/forms/pryptopage.ui \
|
||||
src/qt/forms/infopage.ui
|
||||
src/qt/forms/optionsdialog.ui
|
||||
|
||||
contains(USE_QRCODE, 1) {
|
||||
HEADERS += src/qt/qrcodedialog.h
|
||||
@@ -467,16 +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/qtquick_controls/qml/QmlGUIExchangesControl.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIExchangesWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarWindow.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarListView.qml \
|
||||
src/qt/qtquick_controls/qml/QmlGUIMenuToolbarControl.qml
|
||||
src/qt/test/*.h
|
||||
|
||||
# platform specific defaults, if not overridden on command line
|
||||
isEmpty(BOOST_LIB_SUFFIX) {
|
||||
@@ -557,6 +484,3 @@ contains(RELEASE, 1) {
|
||||
}
|
||||
|
||||
system($$QMAKE_LRELEASE -silent $$TRANSLATIONS)
|
||||
|
||||
DISTFILES += \
|
||||
QmlImports.qml
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// This file is autogenerated by qmake. It imports static plugin classes for
|
||||
// static plugins used by QML imports.
|
||||
#include <QtPlugin>
|
||||
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)
|
||||
@@ -265,7 +265,6 @@ static const CRPCCommand vRPCCommands[] =
|
||||
{ "lockunspent", &lockunspent, false, false, true },
|
||||
{ "listlockunspent", &listlockunspent, false, false, true },
|
||||
{ "verifychain", &verifychain, true, false, false },
|
||||
{ "getcoinsupply", &getcoinsupply, true, false, false },
|
||||
};
|
||||
|
||||
CRPCTable::CRPCTable()
|
||||
@@ -1195,8 +1194,6 @@ Array RPCConvertValues(const std::string &strMethod, const std::vector<std::stri
|
||||
if (strMethod == "importprivkey" && n > 2) ConvertTo<bool>(params[2]);
|
||||
if (strMethod == "verifychain" && n > 0) ConvertTo<boost::int64_t>(params[0]);
|
||||
if (strMethod == "verifychain" && n > 1) ConvertTo<boost::int64_t>(params[1]);
|
||||
if (strMethod == "getcoinsupply" && n > 0) ConvertTo<boost::int64_t>(params[0], true);
|
||||
if (strMethod == "getcoinsupply" && n > 1) ConvertTo<bool>(params[1], true);
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
@@ -206,6 +206,4 @@ extern json_spirit::Value gettxoutsetinfo(const json_spirit::Array& params, bool
|
||||
extern json_spirit::Value gettxout(const json_spirit::Array& params, bool fHelp);
|
||||
extern json_spirit::Value verifychain(const json_spirit::Array& params, bool fHelp);
|
||||
|
||||
extern json_spirit::Value getcoinsupply(const json_spirit::Array& params, bool fHelp);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
//
|
||||
|
||||
// These need to be macros, as version.cpp's and bitcoin-qt.rc's voodoo requires it
|
||||
#define CLIENT_VERSION_MAJOR 2
|
||||
#define CLIENT_VERSION_MINOR 0
|
||||
#define CLIENT_VERSION_MAJOR 1
|
||||
#define CLIENT_VERSION_MINOR 3
|
||||
#define CLIENT_VERSION_REVISION 0
|
||||
#define CLIENT_VERSION_BUILD 0
|
||||
|
||||
|
||||
@@ -11,7 +11,9 @@
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
#ifndef FD_SETSIZE
|
||||
#define FD_SETSIZE 1024 // max number of fds in fd_set
|
||||
#endif
|
||||
#include <winsock2.h>
|
||||
#include <mswsock.h>
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
189
src/init.cpp
189
src/init.cpp
@@ -3,6 +3,11 @@
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifdef QT_GUI
|
||||
#include <QApplication>
|
||||
#include <QProcess>
|
||||
#endif
|
||||
|
||||
#include "txdb.h"
|
||||
#include "walletdb.h"
|
||||
#include "bitcoinrpc.h"
|
||||
@@ -76,9 +81,87 @@ enum BindFlags {
|
||||
|
||||
volatile bool fRequestShutdown = false;
|
||||
|
||||
bool copyDir(
|
||||
boost::filesystem::path const & source,
|
||||
boost::filesystem::path const & destination
|
||||
)
|
||||
{
|
||||
namespace fs = boost::filesystem;
|
||||
try
|
||||
{
|
||||
// Check whether the function call is valid
|
||||
if(
|
||||
!fs::exists(source) ||
|
||||
!fs::is_directory(source)
|
||||
)
|
||||
{
|
||||
std::cerr << "Source directory " << source.string()
|
||||
<< " does not exist or is not a directory." << '\n'
|
||||
;
|
||||
return false;
|
||||
}
|
||||
if(fs::exists(destination))
|
||||
{
|
||||
std::cerr << "Destination directory " << destination.string()
|
||||
<< " already exists." << '\n'
|
||||
;
|
||||
return false;
|
||||
}
|
||||
// Create the destination directory
|
||||
if(!fs::create_directory(destination))
|
||||
{
|
||||
std::cerr << "Unable to create destination directory"
|
||||
<< destination.string() << '\n'
|
||||
;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch(fs::filesystem_error const & e)
|
||||
{
|
||||
std::cerr << e.what() << '\n';
|
||||
return false;
|
||||
}
|
||||
// Iterate through the source directory
|
||||
for(
|
||||
fs::directory_iterator file(source);
|
||||
file != fs::directory_iterator(); ++file
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
fs::path current(file->path());
|
||||
if(fs::is_directory(current))
|
||||
{
|
||||
// Found directory: Recursion
|
||||
if(
|
||||
!copyDir(
|
||||
current,
|
||||
destination / current.filename()
|
||||
)
|
||||
)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Found file: Copy
|
||||
fs::rename(
|
||||
current,
|
||||
destination / current.filename()
|
||||
);
|
||||
}
|
||||
}
|
||||
catch(fs::filesystem_error const & e)
|
||||
{
|
||||
std:: cerr << e.what() << '\n';
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void StartShutdown()
|
||||
{
|
||||
boost::this_thread::sleep_for( boost::chrono::seconds( 1 ) );
|
||||
fRequestShutdown = true;
|
||||
}
|
||||
bool ShutdownRequested()
|
||||
@@ -99,10 +182,9 @@ void Shutdown()
|
||||
nTransactionsUpdated++;
|
||||
StopRPCThreads();
|
||||
ShutdownRPCMining();
|
||||
StopNode();
|
||||
if (pwalletMain)
|
||||
bitdb.Flush(false);
|
||||
GenerateBitcoins(false, NULL);
|
||||
StopNode();
|
||||
{
|
||||
LOCK(cs_main);
|
||||
if (pwalletMain)
|
||||
@@ -121,6 +203,43 @@ void Shutdown()
|
||||
UnregisterWallet(pwalletMain);
|
||||
if (pwalletMain)
|
||||
delete pwalletMain;
|
||||
#ifdef QT_GUI
|
||||
if (fImporting && fRestart)
|
||||
{
|
||||
printf("Preparing blockchain files for loading after restart.\n");
|
||||
if (boost::filesystem::exists(GetDataDir() / "bootstrap" / "blocks" / "blk00000.dat"))
|
||||
{
|
||||
try
|
||||
{
|
||||
// remove directories
|
||||
boost::filesystem::remove_all(GetDataDir() / "blocks");
|
||||
boost::filesystem::remove_all(GetDataDir() / "chainstate");
|
||||
// copy contents over to data dir
|
||||
copyDir(GetDataDir() / "bootstrap" / "blocks", GetDataDir() / "blocks");
|
||||
copyDir(GetDataDir() / "bootstrap" / "chainstate", GetDataDir() / "chainstate");
|
||||
// cleanup bootstrap
|
||||
boost::filesystem::remove_all(GetDataDir() / "bootstrap");
|
||||
// boost::filesystem::copy_directory(GetDataDir() / "bootstrap" / "blocks", GetDataDir() / "blocks");
|
||||
// boost::filesystem::copy_directory(GetDataDir() / "bootstrap" / "chainstate", GetDataDir() / "chainstate");
|
||||
// rename the extracted directories
|
||||
// boost::filesystem::rename(GetDataDir() / "bootstrap" / "blocks", GetDataDir() / "blocks");
|
||||
// boost::filesystem::rename(GetDataDir() / "bootstrap" / "chainstate", GetDataDir() / "chainstate");
|
||||
RestartWallet("-listen=0 -bootstrap=1", true);
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
printf("Bootstrap shutdown filesystem error!\n");
|
||||
}
|
||||
}
|
||||
else if (fRescan)
|
||||
{
|
||||
RestartWallet("-rescan", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
RestartWallet(NULL, true);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
printf("Shutdown : done\n");
|
||||
}
|
||||
|
||||
@@ -423,7 +542,7 @@ void ThreadImport(std::vector<boost::filesystem::path> vImportFiles)
|
||||
}
|
||||
|
||||
// hardcoded $DATADIR/bootstrap.dat
|
||||
filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
||||
filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
||||
if (filesystem::exists(pathBootstrap)) {
|
||||
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
|
||||
if (file) {
|
||||
@@ -433,7 +552,7 @@ void ThreadImport(std::vector<boost::filesystem::path> vImportFiles)
|
||||
LoadExternalBlockFile(file);
|
||||
RenameOver(pathBootstrap, pathBootstrapOld);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -loadblock=
|
||||
BOOST_FOREACH(boost::filesystem::path &path, vImportFiles) {
|
||||
@@ -446,6 +565,20 @@ void ThreadImport(std::vector<boost::filesystem::path> vImportFiles)
|
||||
}
|
||||
}
|
||||
|
||||
void ThreadImportBootsrap()
|
||||
{
|
||||
filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
||||
if (filesystem::exists(pathBootstrap)) {
|
||||
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
|
||||
if (file) {
|
||||
filesystem::path pathBootstrapOld = GetDataDir() / "bootstrap.dat.old";
|
||||
printf("Importing bootstrap.dat...\n");
|
||||
LoadExternalBlockFile(file);
|
||||
RenameOver(pathBootstrap, pathBootstrapOld);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Initialize bitcoin.
|
||||
* @pre Parameters should be parsed and config file should be read.
|
||||
*/
|
||||
@@ -987,7 +1120,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||
uiInterface.InitMessage(_("Loading wallet..."));
|
||||
|
||||
nStart = GetTimeMillis();
|
||||
bool fFirstRun = true;
|
||||
fFirstRun = true;
|
||||
pwalletMain = new CWallet("wallet.dat");
|
||||
DBErrors nLoadWalletRet = pwalletMain->LoadWallet(fFirstRun);
|
||||
if (nLoadWalletRet != DB_LOAD_OK)
|
||||
@@ -1047,10 +1180,12 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||
printf(" wallet %15"PRI64d"ms\n", GetTimeMillis() - nStart);
|
||||
|
||||
RegisterWallet(pwalletMain);
|
||||
|
||||
CBlockIndex *pindexRescan = pindexBest;
|
||||
if (GetBoolArg("-rescan"))
|
||||
{
|
||||
printf("Rescan, set rescan index to genesis block.\n");
|
||||
pindexRescan = pindexGenesisBlock;
|
||||
}
|
||||
else
|
||||
{
|
||||
CWalletDB walletdb("wallet.dat");
|
||||
@@ -1060,9 +1195,10 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||
else
|
||||
pindexRescan = pindexGenesisBlock;
|
||||
}
|
||||
if (pindexBest && pindexBest != pindexRescan)
|
||||
printf("Restart after bootstrap? Prevent rescan: %i\n", GetBoolArg("-bootstrap"));
|
||||
if (pindexBest && (pindexBest != pindexRescan) && !GetBoolArg("-bootstrap"))
|
||||
{
|
||||
uiInterface.InitMessage(_("Rescanning..."));
|
||||
uiInterface.InitMessage(_("Rescanning Blockchain, please wait ..."));
|
||||
printf("Rescanning last %i blocks (from block %i)...\n", pindexBest->nHeight - pindexRescan->nHeight, pindexRescan->nHeight);
|
||||
nStart = GetTimeMillis();
|
||||
pwalletMain->ScanForWalletTransactions(pindexRescan, true);
|
||||
@@ -1144,3 +1280,38 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||
|
||||
return !fRequestShutdown;
|
||||
}
|
||||
|
||||
#ifdef QT_GUI
|
||||
// Restart wallet
|
||||
void RestartWallet(const char *parm, bool fOldParms)
|
||||
{
|
||||
QStringList newArgv(QApplication::instance()->arguments());
|
||||
QString command;
|
||||
command = newArgv[0];
|
||||
if (!fOldParms)
|
||||
{
|
||||
newArgv.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
newArgv.removeFirst();
|
||||
}
|
||||
newArgv.append(QString("-restart"));
|
||||
// remove rescan if in params
|
||||
if ((fOldParms && mapArgs.count("-rescan")))
|
||||
newArgv.removeOne(QString("-rescan"));
|
||||
// add input params to new param list
|
||||
if (parm)
|
||||
{
|
||||
printf("RestartWallet parameters: %s\n", parm);
|
||||
QStringList slist;
|
||||
slist = QString(parm).split(" ");
|
||||
for (int x = 0; x <= slist.count()-1; x++) {
|
||||
newArgv.append(slist.at(x));
|
||||
}
|
||||
}
|
||||
// Spawn a new instance.
|
||||
QProcess::startDetached(command, newArgv);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -8,11 +8,14 @@
|
||||
#include "wallet.h"
|
||||
|
||||
extern CWallet* pwalletMain;
|
||||
|
||||
void StartShutdown();
|
||||
bool ShutdownRequested();
|
||||
void Shutdown();
|
||||
bool AppInit2(boost::thread_group& threadGroup);
|
||||
std::string HelpMessage();
|
||||
void ThreadImportBootsrap();
|
||||
#ifdef QT_GUI
|
||||
void RestartWallet(const char *parm, bool fOldParms = true);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
110
src/main.cpp
110
src/main.cpp
@@ -1124,47 +1124,6 @@ int64 static GetBlockValue(int nHeight, int64 nFees)
|
||||
return nSubsidy + nFees;
|
||||
}
|
||||
|
||||
int64 GetTotalCoinSupply(int nHeight, bool noCheckpoints)
|
||||
{
|
||||
int64 totalSupply = 0;
|
||||
int startBlock = 1;
|
||||
if ( !noCheckpoints ) {
|
||||
// Reduce the amount of calculations by specifying total checkpoints
|
||||
int heights[] = {
|
||||
100000, 200000, 300000, 400000, 500000,
|
||||
600000, 700000, 800000, 900000, 1000000,
|
||||
1100000
|
||||
};
|
||||
int64 supplies[] = {
|
||||
482721500000000, 982721500000000, 1482721500000000, 1982721500000000, 2482721500000000,
|
||||
2882721500000000, 2982721500000000, 3082721500000000, 3182721500000000, 3282721500000000,
|
||||
3382721500000000
|
||||
};
|
||||
if (nHeight>=1 ) {
|
||||
int numHeights = (int)(sizeof(heights)/sizeof(heights[0]));
|
||||
// int numSupplies = (int)(sizeof(supplies)/sizeof(supplies[0]));
|
||||
// if (nHeight>heights[numHeights-1]) {
|
||||
// nHeight = heights[numHeights-1];
|
||||
// }
|
||||
for (int i=(numHeights-1); i>=0; i--) {
|
||||
if ( heights[i] <= nHeight ) {
|
||||
if (i>=0) {
|
||||
totalSupply = supplies[i];
|
||||
startBlock = heights[i] + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( nHeight>=1 ) {
|
||||
for (int i = startBlock; i <= nHeight; i++) {
|
||||
totalSupply += GetBlockValue( i, 0 );
|
||||
}
|
||||
}
|
||||
return totalSupply;
|
||||
}
|
||||
|
||||
static const int64 nTargetTimespan = 0.25 * 24 * 60 * 60; // CasinoCoin: 0.25 day / 6 hours
|
||||
static const int64 nTargetSpacing = 1 * 30; // CasinoCoin: 30 seconds
|
||||
static const int64 nInterval = nTargetTimespan / nTargetSpacing;
|
||||
@@ -1239,7 +1198,8 @@ unsigned int static GetNextWorkRequired_V1(const CBlockIndex* pindexLast, const
|
||||
|
||||
// Limit adjustment step
|
||||
int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime();
|
||||
printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan);
|
||||
if(!fImporting)
|
||||
printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan);
|
||||
if (nActualTimespan < nTargetTimespan/4)
|
||||
nActualTimespan = nTargetTimespan/4;
|
||||
if (nActualTimespan > nTargetTimespan*4)
|
||||
@@ -1255,11 +1215,13 @@ unsigned int static GetNextWorkRequired_V1(const CBlockIndex* pindexLast, const
|
||||
bnNew = bnProofOfWorkLimit;
|
||||
|
||||
/// debug print
|
||||
printf("Difficulty Retarget - GetNextWorkRequired_V1 RETARGET\n");
|
||||
printf("nTargetTimespan = %"PRI64d" nActualTimespan = %"PRI64d"\n", nTargetTimespan, nActualTimespan);
|
||||
printf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
|
||||
if(!fImporting)
|
||||
{
|
||||
printf("Difficulty Retarget - GetNextWorkRequired_V1 RETARGET\n");
|
||||
printf("nTargetTimespan = %"PRI64d" nActualTimespan = %"PRI64d"\n", nTargetTimespan, nActualTimespan);
|
||||
printf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
}
|
||||
return bnNew.GetCompact();
|
||||
}
|
||||
|
||||
@@ -1323,11 +1285,13 @@ unsigned int static KimotoGravityWell(const CBlockIndex* pindexLast, const CBloc
|
||||
if (bnNew > bnProofOfWorkLimit) { bnNew = bnProofOfWorkLimit; }
|
||||
|
||||
/// debug print
|
||||
printf("Difficulty Retarget - Kimoto Gravity Well RETARGET\n");
|
||||
printf("PastRateAdjustmentRatio = %g\n", PastRateAdjustmentRatio);
|
||||
printf("Before: %08x %s\n", BlockLastSolved->nBits, CBigNum().SetCompact(BlockLastSolved->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
|
||||
if(!fImporting)
|
||||
{
|
||||
printf("Difficulty Retarget - Kimoto Gravity Well RETARGET\n");
|
||||
printf("PastRateAdjustmentRatio = %g\n", PastRateAdjustmentRatio);
|
||||
printf("Before: %08x %s\n", BlockLastSolved->nBits, CBigNum().SetCompact(BlockLastSolved->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
}
|
||||
return bnNew.GetCompact();
|
||||
}
|
||||
|
||||
@@ -1390,9 +1354,8 @@ unsigned int static DigiShield(const CBlockIndex* pindexLast, const CBlockHeader
|
||||
|
||||
// Limit adjustment step
|
||||
int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime();
|
||||
printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan);
|
||||
|
||||
|
||||
if(!fImporting)
|
||||
printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan);
|
||||
|
||||
CBigNum bnNew;
|
||||
bnNew.SetCompact(pindexLast->nBits);
|
||||
@@ -1405,17 +1368,16 @@ unsigned int static DigiShield(const CBlockIndex* pindexLast, const CBlockHeader
|
||||
bnNew /= retargetTimespan;
|
||||
|
||||
/// debug print
|
||||
printf("DigiShield RETARGET \n");
|
||||
printf("retargetTimespan = %"PRI64d" nActualTimespan = %"PRI64d"\n", retargetTimespan, nActualTimespan);
|
||||
printf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
|
||||
|
||||
if(!fImporting)
|
||||
{
|
||||
printf("DigiShield RETARGET \n");
|
||||
printf("retargetTimespan = %"PRI64d" nActualTimespan = %"PRI64d"\n", retargetTimespan, nActualTimespan);
|
||||
printf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str());
|
||||
printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
|
||||
}
|
||||
if (bnNew > bnProofOfWorkLimit)
|
||||
bnNew = bnProofOfWorkLimit;
|
||||
|
||||
|
||||
|
||||
return bnNew.GetCompact();
|
||||
}
|
||||
|
||||
@@ -2156,10 +2118,20 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
|
||||
nBestChainWork = pindexNew->nChainWork;
|
||||
nTimeBestReceived = GetTime();
|
||||
nTransactionsUpdated++;
|
||||
printf("SetBestChain: new best=%s height=%d log2_work=%.8g tx=%lu date=%s progress=%f\n",
|
||||
hashBestChain.ToString().c_str(), nBestHeight, log(nBestChainWork.getdouble())/log(2.0), (unsigned long)pindexNew->nChainTx,
|
||||
DateTimeStrFormat("%Y-%m-%d %H:%M:%S", pindexBest->GetBlockTime()).c_str(),
|
||||
Checkpoints::GuessVerificationProgress(pindexBest));
|
||||
if(!fImporting)
|
||||
{
|
||||
printf("SetBestChain: new best=%s height=%d log2_work=%.8g tx=%lu date=%s progress=%f\n",
|
||||
hashBestChain.ToString().c_str(), nBestHeight, log(nBestChainWork.getdouble())/log(2.0), (unsigned long)pindexNew->nChainTx,
|
||||
DateTimeStrFormat("%Y-%m-%d %H:%M:%S", pindexBest->GetBlockTime()).c_str(),
|
||||
Checkpoints::GuessVerificationProgress(pindexBest));
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nBestHeight % 1000 == 0)
|
||||
{
|
||||
printf("Blockchain import at height %d\n", nBestHeight);
|
||||
}
|
||||
}
|
||||
|
||||
// Check the version of the last 100 blocks to see if we need to upgrade:
|
||||
if (!fIsInitialDownload)
|
||||
@@ -2575,8 +2547,8 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl
|
||||
}
|
||||
mapOrphanBlocksByPrev.erase(hashPrev);
|
||||
}
|
||||
|
||||
printf("ProcessBlock: ACCEPTED\n");
|
||||
if(!fImporting)
|
||||
printf("ProcessBlock: ACCEPTED\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -191,8 +191,12 @@ CBlockIndex * InsertBlockIndex(uint256 hash);
|
||||
bool VerifySignature(const CCoins& txFrom, const CTransaction& txTo, unsigned int nIn, unsigned int flags, int nHashType);
|
||||
/** Abort with a message */
|
||||
bool AbortNode(const std::string &msg);
|
||||
/** Get total coin supply for block height */
|
||||
int64 GetTotalCoinSupply(int nHeight, bool noCheckpoints);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -21,21 +21,21 @@ USE_UPNP:=-
|
||||
USE_IPV6:=1
|
||||
|
||||
DEPSDIR?=/usr/local
|
||||
BOOST_SUFFIX?=-mgw49-mt-s-1_55
|
||||
BOOST_SUFFIX?=-mgw46-mt-s-1_53
|
||||
|
||||
INCLUDEPATHS= \
|
||||
-I"$(CURDIR)" \
|
||||
-I"C:\deps\boost_1_55_0" \
|
||||
-I"C:\deps\db-4.8.30.NC\build_unix" \
|
||||
-I"C:\deps\openssl-1.0.2d\include" \
|
||||
-I"C:\deps\qrencode-3.4.3"
|
||||
-I"E:\crypto\deps\boost_1_53_0" \
|
||||
-I"E:\crypto\deps\db-4.8.30.NC\build_unix" \
|
||||
-I"E:\crypto\deps\openssl-1.0.1b\include" \
|
||||
-I"E:\crypto\deps\qrencode-3.4.3"
|
||||
|
||||
LIBPATHS= \
|
||||
-L"$(CURDIR)/leveldb" \
|
||||
-L"C:\deps\boost_1_55_0\stage\lib" \
|
||||
-L"C:\deps\db-4.8.30.NC\build_unix" \
|
||||
-L"C:\deps\openssl-1.0.2d" \
|
||||
-L"C:\deps\qrencode-3.4.3\.libs"
|
||||
-L"E:\crypto\deps\boost_1_53_0\stage\lib" \
|
||||
-L"E:\crypto\deps\db-4.8.30.NC\build_unix" \
|
||||
-L"E:\crypto\deps\openssl-1.0.1b" \
|
||||
-L"E:\crypto\deps\qrencode-3.4.3\.libs"
|
||||
|
||||
LIBS= \
|
||||
-l leveldb \
|
||||
|
||||
13
src/net.cpp
13
src/net.cpp
@@ -1192,14 +1192,10 @@ void MapPort(bool)
|
||||
// The first name is used as information source for addrman.
|
||||
// The second name should resolve to a list of seed addresses.
|
||||
static const char *strMainNetDNSSeed[][2] = {
|
||||
{"casinocoin.org seed", "seed.dig0.com"},
|
||||
{"casinocoin.org seed s", "seed.casinocoin.org"},
|
||||
{"casinocoin.org seed #1", "seed1.dig0.com"},
|
||||
{"casinocoin.org seed #1s", "seed1.casinocoin.org"},
|
||||
{"casinocoin.org seed #2", "seed2.dig0.com"},
|
||||
{"casinocoin.org seed #2s", "seed2.casinocoin.org"},
|
||||
{"casinocoin.org seed #3", "seed3.dig0.com"},
|
||||
{"casinocoin.org seed #3s", "seed3.casinocoin.org"},
|
||||
{"casinocoin.org seed", "seed.casinocoin.org"},
|
||||
{"casinocoin.org seed #1", "seed1.casinocoin.org"},
|
||||
{"casinocoin.org seed #2", "seed2.casinocoin.org"},
|
||||
{"casinocoin.org seed #3", "seed3.casinocoin.org"},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
@@ -1831,6 +1827,7 @@ public:
|
||||
}
|
||||
~CNetCleanup()
|
||||
{
|
||||
printf("Close all sockets.\n");
|
||||
// Close sockets
|
||||
BOOST_FOREACH(CNode* pnode, vNodes)
|
||||
if (pnode->hSocket != INVALID_SOCKET)
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
#include "casinocoinwebapi.h"
|
||||
|
||||
#include <QSsl>
|
||||
#include <QDebug>
|
||||
|
||||
const QString CasinoCoinWebAPI::s_strServerAddress = "http://api.csc.dig0.com/";
|
||||
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::GetCoinInfo()
|
||||
{
|
||||
Get( s_strServerAddress + s_strServerEndpoint + "/CoinInfo" );
|
||||
}
|
||||
|
||||
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
|
||||
qDebug() << "API Network Error: " << finished->errorString();
|
||||
emit signalNetworkError( finished->error(), finished->request().url() );
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray data = finished->readAll();
|
||||
emit signalResponseReady( data );
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
#ifndef CASINOCOINWEBAPI_H
|
||||
#define CASINOCOINWEBAPI_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
|
||||
class CasinoCoinWebAPI : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CasinoCoinWebAPI( QObject* a_pParent = 0 );
|
||||
virtual ~CasinoCoinWebAPI(){}
|
||||
|
||||
void GetActivePromotions();
|
||||
void GetActiveCasinos();
|
||||
void GetActiveNewsItems();
|
||||
void GetActiveExchanges();
|
||||
void GetCoinInfo();
|
||||
|
||||
static const QString s_strServerAddress;
|
||||
static const QString s_strServerEndpoint;
|
||||
|
||||
signals:
|
||||
void signalResponseReady( const QByteArray& a_rJsonFile );
|
||||
void signalNetworkError
|
||||
( QNetworkReply::NetworkError a_eError
|
||||
, const QUrl a_rFailedUrl
|
||||
);
|
||||
|
||||
public slots:
|
||||
void slotParseNetworkResponse( QNetworkReply *finished );
|
||||
|
||||
private:
|
||||
void Get( const QString& a_rUrl );
|
||||
|
||||
QNetworkAccessManager m_oNetworkAccessManager;
|
||||
};
|
||||
|
||||
#endif // CASINOCOINWEBAPI_H
|
||||
@@ -1,140 +0,0 @@
|
||||
#include "casinocoinwebapiparser.h"
|
||||
|
||||
#include "util.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/filesystem/fstream.hpp>
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
|
||||
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() )
|
||||
{
|
||||
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 );
|
||||
}
|
||||
else if ( jsonObjectResult.find( "CoinInfo" ).value().isObject() )
|
||||
{
|
||||
StoreFile( "CoinInfo", a_rJsonFile );
|
||||
ParseCoinInfo( docAsObject );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "CasinoCoinWebAPIParser -> No Result object found: " << docAsObject.begin().key();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "CasinoCoinWebAPIParser -> Parse Error: " << oError.errorString();
|
||||
}
|
||||
}
|
||||
|
||||
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";
|
||||
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() << "ParseExchanges";
|
||||
emit signalActiveExchangesParsed( new JsonActiveExchangesParser( a_rJsonExchanges ) );
|
||||
}
|
||||
|
||||
void CasinoCoinWebAPIParser::ParseNewsItems( const QJsonObject& a_rJsonNewsItems )
|
||||
{
|
||||
qDebug() << "Coming soon - ParseNewsItems";
|
||||
qDebug() << a_rJsonNewsItems;
|
||||
}
|
||||
|
||||
void CasinoCoinWebAPIParser::ParseCoinInfo( const QJsonObject& a_rJsonCoinInfo )
|
||||
{
|
||||
qDebug() << "ParseCoinInfo";
|
||||
emit signalCoinInfoParsed( new JsonCoinInfoParser( a_rJsonCoinInfo ) );
|
||||
}
|
||||
|
||||
QByteArray CasinoCoinWebAPIParser::ReadFile( QString a_strSourcePath )
|
||||
{
|
||||
QByteArray strAnswer;
|
||||
boost::filesystem::path pathCasinoCoinAPIResources = GetDataDir() / "cscapires";
|
||||
|
||||
QFile fileOutput( QDir( QString::fromStdString( pathCasinoCoinAPIResources.string() ) ).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 )
|
||||
{
|
||||
boost::filesystem::path pathCasinoCoinAPIResources = GetDataDir() / "cscapires";
|
||||
boost::filesystem::create_directories(pathCasinoCoinAPIResources);
|
||||
|
||||
QFile fileOutput( QDir( QString::fromStdString( pathCasinoCoinAPIResources.string() ) ).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();
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
#ifndef CASINOCOINWEBAPIPARSER_H
|
||||
#define CASINOCOINWEBAPIPARSER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "jsonactivepromotionsparser.h"
|
||||
#include "jsonsingleactivepromotion.h"
|
||||
#include "jsoncoininfoparser.h"
|
||||
#include "jsonactiveexchangesparser.h"
|
||||
#include "jsonsingleactiveexchange.h"
|
||||
|
||||
#include <QNetworkReply>
|
||||
|
||||
class CasinoCoinWebAPIParser : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CasinoCoinWebAPIParser( QObject* a_pParent = 0 );
|
||||
|
||||
|
||||
signals:
|
||||
void signalActivePromotionsParsed( JsonActivePromotionsParser* a_pActivePromotions );
|
||||
void signalCoinInfoParsed( JsonCoinInfoParser* a_pCoinInfo );
|
||||
// void signalActiveCasinosParsed( JsonActiveCasinosParser* a_pActivePromotions );
|
||||
void signalActiveExchangesParsed( JsonActiveExchangesParser* a_pActiveExchanges );
|
||||
// void signalActiveNewsItemsParsed( JsonActiveNewsItemsParser* a_pActivePromotions );
|
||||
|
||||
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 );
|
||||
void ParseCoinInfo ( const QJsonObject& a_rJsonCoinInfo );
|
||||
|
||||
QByteArray ReadFile( QString a_strSourcePath );
|
||||
void StoreFile( QString a_strDestinationPath, const QByteArray& a_rJsonFile );
|
||||
};
|
||||
|
||||
#endif // CASINOCOINWEBAPIPARSER_H
|
||||
@@ -1,54 +0,0 @@
|
||||
#include "jsonactiveexchangesparser.h"
|
||||
#include "../qtquick_controls/cpp/qmlimageprovider.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
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<JsonSingleActiveExchange>& JsonActiveExchangesParser::GetExchanges() const
|
||||
{
|
||||
return m_aActiveExchanges;
|
||||
}
|
||||
|
||||
QList<JsonSingleActiveExchange>& 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() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef JSONACTIVEEXCHANGESPARSER_H
|
||||
#define JSONACTIVEEXCHANGESPARSER_H
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
#include <QJsonArray>
|
||||
#include <QList>
|
||||
|
||||
#include "jsonsingleactiveexchange.h"
|
||||
|
||||
class QmlImageProvider;
|
||||
|
||||
class JsonActiveExchangesParser : public QJsonObject
|
||||
{
|
||||
public:
|
||||
JsonActiveExchangesParser();
|
||||
JsonActiveExchangesParser( const QJsonObject& a_rOther );
|
||||
virtual ~JsonActiveExchangesParser(){}
|
||||
|
||||
const QList<JsonSingleActiveExchange>& GetExchanges() const;
|
||||
QList<JsonSingleActiveExchange>& GetExchanges();
|
||||
|
||||
void AddImagesToPool( QmlImageProvider* a_pImageProvider );
|
||||
|
||||
private:
|
||||
void ResolveExchangesArray();
|
||||
|
||||
QList<JsonSingleActiveExchange> m_aActiveExchanges;
|
||||
};
|
||||
|
||||
#endif // JSONACTIVEEXCHANGESPARSER_H
|
||||
@@ -1,54 +0,0 @@
|
||||
#include "jsonactivepromotionsparser.h"
|
||||
#include "../qtquick_controls/cpp/qmlimageprovider.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
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_aActivePromotions.append( JsonSingleActivePromotion( singleCasinoDescriptor.toObject() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const QList<JsonSingleActivePromotion>& JsonActivePromotionsParser::GetPromotions() const
|
||||
{
|
||||
return m_aActivePromotions;
|
||||
}
|
||||
|
||||
QList<JsonSingleActivePromotion>& 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() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef JSONACTIVEPROMOTIONSPARSER_H
|
||||
#define JSONACTIVEPROMOTIONSPARSER_H
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
#include <QJsonArray>
|
||||
#include <QList>
|
||||
|
||||
#include "jsonsingleactivepromotion.h"
|
||||
|
||||
class QmlImageProvider;
|
||||
|
||||
class JsonActivePromotionsParser : public QJsonObject
|
||||
{
|
||||
public:
|
||||
JsonActivePromotionsParser();
|
||||
JsonActivePromotionsParser( const QJsonObject& a_rOther );
|
||||
virtual ~JsonActivePromotionsParser(){}
|
||||
|
||||
const QList<JsonSingleActivePromotion>& GetPromotions() const;
|
||||
QList<JsonSingleActivePromotion>& GetPromotions();
|
||||
|
||||
void AddImagesToPool( QmlImageProvider* a_pImageProvider );
|
||||
|
||||
private:
|
||||
void ResolvePromotionsArray();
|
||||
|
||||
QList<JsonSingleActivePromotion> m_aActivePromotions;
|
||||
};
|
||||
|
||||
#endif // JSONACTIVEPROMOTIONSPARSER_H
|
||||
@@ -1,29 +0,0 @@
|
||||
#include "jsoncoininfoparser.h"
|
||||
#include <QDebug>
|
||||
|
||||
JsonCoinInfoParser::JsonCoinInfoParser()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
JsonCoinInfoParser::JsonCoinInfoParser( const QJsonObject& apiResult )
|
||||
: QJsonObject( apiResult )
|
||||
{
|
||||
qDebug() << "JsonCoinInfoParser: " << apiResult.begin().key();
|
||||
if ( apiResult.find( "Result" ).value().isObject() )
|
||||
{
|
||||
if ( apiResult.find( "Result" ).value().toObject().find( "CoinInfo" ).value().isObject() )
|
||||
{
|
||||
coinInfoObject = apiResult.find( "Result" ).value().toObject().find( "CoinInfo" ).value().toObject();
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug()<<"JsonCoinInfoParser first key: " << apiResult.find( "Result" ).value().toObject().begin().key();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const QJsonObject& JsonCoinInfoParser::getCoinInfo() const
|
||||
{
|
||||
return coinInfoObject;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
#ifndef JSONCOININFOPARSER_H
|
||||
#define JSONCOININFOPARSER_H
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
|
||||
class JsonCoinInfoParser : public QJsonObject
|
||||
{
|
||||
public:
|
||||
JsonCoinInfoParser();
|
||||
JsonCoinInfoParser( const QJsonObject& a_rOther );
|
||||
virtual ~JsonCoinInfoParser(){}
|
||||
|
||||
const QJsonObject& getCoinInfo() const;
|
||||
|
||||
private:
|
||||
QJsonObject coinInfoObject;
|
||||
};
|
||||
|
||||
#endif // JSONCOININFOPARSER_H
|
||||
@@ -1,42 +0,0 @@
|
||||
#include "jsonsingleactiveexchange.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QImage>
|
||||
#include <QDir>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
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 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
#ifndef JSONSINGLEACTIVEEXCHANGE_H
|
||||
#define JSONSINGLEACTIVEEXCHANGE_H
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
#include <QJsonArray>
|
||||
|
||||
#include <QImage>
|
||||
|
||||
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
|
||||
@@ -1,34 +0,0 @@
|
||||
#include "jsonsingleactivepromotion.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QImage>
|
||||
#include <QDir>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
JsonSingleActivePromotion::JsonSingleActivePromotion()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
JsonSingleActivePromotion::JsonSingleActivePromotion( const QJsonObject& a_rOther )
|
||||
: QJsonObject( a_rOther )
|
||||
{
|
||||
m_strImageName = find( "promotion_title" ).value().toString().remove( GetRestrictedCharacters() );
|
||||
StoreImage();
|
||||
}
|
||||
|
||||
QRegExp JsonSingleActivePromotion::GetRestrictedCharacters()
|
||||
{
|
||||
return QRegExp( "[<,>|\\:()&;#?*% ]" );
|
||||
}
|
||||
|
||||
void JsonSingleActivePromotion::StoreImage()
|
||||
{
|
||||
if ( find( "image_mime_type" ).value().toString().split( "/" ).first().contains( "image" ) )
|
||||
{
|
||||
QByteArray binaryData = QByteArray::fromBase64( find( "promotion_image" ).value().toString().toLocal8Bit() );
|
||||
m_oAdvertImage = QImage::fromData( binaryData );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#ifndef JSONSINGLEACTIVEPROMOTION_H
|
||||
#define JSONSINGLEACTIVEPROMOTION_H
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
#include <QJsonArray>
|
||||
|
||||
#include <QImage>
|
||||
|
||||
class JsonSingleActivePromotion : public QJsonObject
|
||||
{
|
||||
public:
|
||||
JsonSingleActivePromotion();
|
||||
JsonSingleActivePromotion( const QJsonObject& a_rOther );
|
||||
virtual ~JsonSingleActivePromotion(){}
|
||||
|
||||
QString GetImageName() const{ return m_strImageName; }
|
||||
QImage GetAdvertImage() const { return m_oAdvertImage; }
|
||||
private:
|
||||
void StoreImage();
|
||||
|
||||
static QRegExp GetRestrictedCharacters();
|
||||
|
||||
QString m_strImageName;
|
||||
QImage m_oAdvertImage;
|
||||
|
||||
};
|
||||
|
||||
#endif // JSONSINGLEACTIVEPROMOTION_H
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
// Copyright year (2009-this)
|
||||
// Todo: update this when changing our copyright comments in the source
|
||||
const int ABOUTDIALOG_COPYRIGHT_YEAR = 2015;
|
||||
const int ABOUTDIALOG_COPYRIGHT_YEAR = 2013;
|
||||
|
||||
AboutDialog::AboutDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
@@ -15,9 +15,7 @@ AboutDialog::AboutDialog(QWidget *parent) :
|
||||
ui->setupUi(this);
|
||||
|
||||
// Set current copyright year
|
||||
ui->copyrightLabel->setText(tr("Copyright") + QString(" © 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin developers") + QString("<br>") +
|
||||
tr("Copyright") + QString(" © ") + tr("2013-%1 The CasinoCoin developers").arg(ABOUTDIALOG_COPYRIGHT_YEAR) + QString("<br>") +
|
||||
tr("Copyright") + QString(" © ") + tr("2015 - GUI 2.0 Design by Felix Rojauro (felix.rojauro@gmail.com)"));
|
||||
ui->copyrightLabel->setText(tr("Copyright") + QString(" © 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin developers") + QString("<br>") + tr("Copyright") + QString(" © ") + tr("2013-%1 The CasinoCoin developers").arg(ABOUTDIALOG_COPYRIGHT_YEAR));
|
||||
}
|
||||
|
||||
void AboutDialog::setModel(ClientModel *model)
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
#include "csvmodelwriter.h"
|
||||
#include "guiutil.h"
|
||||
|
||||
#include "gui20_skin.h"
|
||||
|
||||
#ifdef USE_QRCODE
|
||||
#include "qrcodedialog.h"
|
||||
#endif
|
||||
@@ -28,6 +26,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
|
||||
tab(tab)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
#ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
|
||||
ui->newAddress->setIcon(QIcon());
|
||||
ui->copyAddress->setIcon(QIcon());
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "wallet.h"
|
||||
#include "base58.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QFont>
|
||||
|
||||
const QString AddressTableModel::Send = "S";
|
||||
@@ -425,24 +424,3 @@ void AddressTableModel::emitDataChanged(int idx)
|
||||
{
|
||||
emit dataChanged(index(idx, 0, QModelIndex()), index(idx, columns.length()-1, QModelIndex()));
|
||||
}
|
||||
|
||||
/* Look up address for label in address book, if not found return empty string.
|
||||
*/
|
||||
QString AddressTableModel::addressForLabel(const QString &label) const
|
||||
{
|
||||
LOCK(wallet->cs_wallet);
|
||||
QString walletAddress = "";
|
||||
// loop over addressbook values to find the key
|
||||
std::map<CTxDestination, std::string>::iterator it;
|
||||
for( it = wallet->mapAddressBook.begin(); it != wallet->mapAddressBook.end(); it++)
|
||||
{
|
||||
qDebug() << "Label Value: " << QString::fromStdString(it->second);
|
||||
if (it->second.compare(label.toStdString()) == 0)
|
||||
{
|
||||
CTxDestination dest = it->first;
|
||||
walletAddress = QString::fromStdString(CBitcoinAddress(dest).ToString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return walletAddress;
|
||||
}
|
||||
|
||||
@@ -69,10 +69,6 @@ public:
|
||||
|
||||
EditStatus getEditStatus() const { return editStatus; }
|
||||
|
||||
/* Look up address for label in address book, if not found return empty string.
|
||||
*/
|
||||
QString addressForLabel(const QString &label) const;
|
||||
|
||||
private:
|
||||
WalletModel *walletModel;
|
||||
CWallet *wallet;
|
||||
|
||||
@@ -91,7 +91,7 @@ static void InitMessage(const std::string &message)
|
||||
{
|
||||
if(splashref)
|
||||
{
|
||||
splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(Qt::black));
|
||||
splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(255,255,255));
|
||||
qApp->processEvents();
|
||||
}
|
||||
printf("init message: %s\n", message.c_str());
|
||||
@@ -151,6 +151,13 @@ int main(int argc, char *argv[])
|
||||
return 1;
|
||||
}
|
||||
ReadConfigFile(mapArgs, mapMultiArgs);
|
||||
// Restarting
|
||||
if (mapArgs.count("-restart")) {
|
||||
// a wallet restart was issued
|
||||
SoftSetBoolArg("-restart", true);
|
||||
// printf("Restart Wallet, wait to give the old instance time to quit.\n");
|
||||
// MilliSleep(7000); // give the old instance time to quit before starting again
|
||||
}
|
||||
|
||||
// Application identification (must be set before OptionsModel is initialized,
|
||||
// as it is used to locate QSettings)
|
||||
@@ -236,6 +243,7 @@ int main(int argc, char *argv[])
|
||||
boost::thread_group threadGroup;
|
||||
|
||||
BitcoinGUI window;
|
||||
|
||||
guiref = &window;
|
||||
|
||||
QTimer* pollShutdownTimer = new QTimer(guiref);
|
||||
@@ -265,6 +273,17 @@ int main(int argc, char *argv[])
|
||||
window.setCurrentWallet("~Default");
|
||||
}
|
||||
|
||||
// check if this is the first time we run or if the bootstrap option is supplied
|
||||
if (fFirstRun || GetBoolArg("-vBootstrap")) // Force boostraping in auto mode
|
||||
{
|
||||
if(!GetBoolArg("-testnet"))
|
||||
{
|
||||
// we go downloading the blockchain so set importing to true to prevent block download from peers
|
||||
fImporting = true;
|
||||
window.reloadBlockchain(true);
|
||||
}
|
||||
}
|
||||
|
||||
// If -min option passed, start window minimized.
|
||||
if(GetBoolArg("-min"))
|
||||
{
|
||||
@@ -292,14 +311,12 @@ int main(int argc, char *argv[])
|
||||
threadGroup.interrupt_all();
|
||||
threadGroup.join_all();
|
||||
Shutdown();
|
||||
pollShutdownTimer->stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
threadGroup.interrupt_all();
|
||||
threadGroup.join_all();
|
||||
Shutdown();
|
||||
pollShutdownTimer->stop();
|
||||
return 1;
|
||||
}
|
||||
} catch (std::exception& e) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<RCC>
|
||||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="/icons">
|
||||
<file alias="bitcoin">res/icons/bitcoin.png</file>
|
||||
<file alias="address-book">res/icons/address-book.png</file>
|
||||
@@ -40,38 +40,12 @@
|
||||
<file alias="filesave">res/icons/filesave.png</file>
|
||||
<file alias="qrcode">res/icons/qrcode.png</file>
|
||||
<file alias="debugwindow">res/icons/debugwindow.png</file>
|
||||
<file alias="advertsArrowLeft">res/icons/adverts_arrow_left.png</file>
|
||||
<file alias="advertsArrowLeftHover">res/icons/adverts_arrow_left_hover.png</file>
|
||||
<file alias="advertsArrowRight">res/icons/adverts_arrow_right.png</file>
|
||||
<file alias="advertsArrowRightHover">res/icons/adverts_arrow_right_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_transactions.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_transactions_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_send.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_send_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_redeemprypto.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_redeemprypto_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_receive.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_receive_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_overview.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_overview_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_info.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_info_hover.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_contacts.png</file>
|
||||
<file>res/icons/GUI20_mainToolBar_contacts_hover.png</file>
|
||||
<file>res/icons/prypto.png</file>
|
||||
<file alias="checkboxTick">res/icons/checkbox_tick.png</file>
|
||||
<file alias="advertsArrowDownHover">res/icons/adverts_arrow_bottom_hover.png</file>
|
||||
<file alias="advertsArrowDown">res/icons/adverts_arrow_bottom.png</file>
|
||||
<file alias="advertsArrowUp">res/icons/adverts_arrow_top.png</file>
|
||||
<file alias="advertsArrowUpHover">res/icons/adverts_arrow_top_hover.png</file>
|
||||
<file alias="radiobuttonTick">res/icons/radiobutton_tick.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/images">
|
||||
<file alias="about">res/images/about.png</file>
|
||||
<file alias="splash">res/images/splash.png</file>
|
||||
<file alias="splash_testnet">res/images/splash_testnet.png</file>
|
||||
<file alias="backg">res/images/wallet.png</file>
|
||||
<file>res/images/GUI20_mainToolBar_cards.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/movies">
|
||||
<file alias="update_spinner">res/movies/update_spinner.mng</file>
|
||||
@@ -125,15 +99,4 @@
|
||||
<file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
|
||||
<file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
|
||||
</qresource>
|
||||
<qresource prefix="/qml">
|
||||
<file>qtquick_controls/qml/QmlGUIBannerControl.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIBannerListView.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIBannerWindow.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIMenuToolbarWindow.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIMenuToolbarListView.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIMenuToolbarControl.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIExchangesWindow.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIExchangesListView.qml</file>
|
||||
<file>qtquick_controls/qml/QmlGUIExchangesControl.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -13,22 +13,19 @@
|
||||
BitcoinAmountField::BitcoinAmountField(QWidget *parent):
|
||||
QWidget(parent), amount(0), currentUnit(-1)
|
||||
{
|
||||
|
||||
unit = new QValueComboBox(this);
|
||||
unit->setModel(new BitcoinUnits(this));
|
||||
unit->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Fixed );
|
||||
|
||||
amount = new QDoubleSpinBox(this);
|
||||
amount->setLocale(QLocale::c());
|
||||
amount = new QDoubleSpinBox(this);
|
||||
amount->setLocale(QLocale::c());
|
||||
amount->setDecimals(8);
|
||||
amount->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
|
||||
amount->installEventFilter(this);
|
||||
amount->setMaximumWidth(170);
|
||||
amount->setSingleStep(0.001);
|
||||
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
layout->addWidget(amount);
|
||||
unit = new QValueComboBox(this);
|
||||
unit->setModel(new BitcoinUnits(this));
|
||||
layout->addWidget(unit);
|
||||
// layout->addStretch(1);
|
||||
layout->addStretch(1);
|
||||
layout->setContentsMargins(0,0,0,0);
|
||||
|
||||
setLayout(layout);
|
||||
|
||||
@@ -25,10 +25,7 @@
|
||||
#include "ui_interface.h"
|
||||
#include "wallet.h"
|
||||
#include "init.h"
|
||||
#include "cscfusionstyle.h"
|
||||
#include "gui20_skin.h"
|
||||
|
||||
#include "qtquick_controls/cpp/guimenutoolbarwidget.h"
|
||||
#include "downloader.h"
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
#include "macdockiconhandler.h"
|
||||
@@ -56,16 +53,19 @@
|
||||
#include <QSettings>
|
||||
#include <QDesktopWidget>
|
||||
#include <QListWidget>
|
||||
#include <QToolTip>
|
||||
|
||||
#include <iostream>
|
||||
#include <boost/thread.hpp>
|
||||
|
||||
using namespace GUIUtil;
|
||||
using namespace boost;
|
||||
|
||||
const QString BitcoinGUI::DEFAULT_WALLET = "~Default";
|
||||
|
||||
BitcoinGUI::BitcoinGUI(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
clientModel(0),
|
||||
toolbarGUI20(0),
|
||||
walletModel(0),
|
||||
encryptWalletAction(0),
|
||||
changePassphraseAction(0),
|
||||
aboutQtAction(0),
|
||||
@@ -74,8 +74,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent) :
|
||||
rpcConsole(0),
|
||||
prevBlocks(0)
|
||||
{
|
||||
QApplication::setStyle(new CSCFusionStyle);
|
||||
|
||||
restoreWindowGeometry();
|
||||
setWindowTitle(tr("CasinoCoin") + " - " + tr("Wallet"));
|
||||
#ifndef Q_OS_MAC
|
||||
@@ -85,20 +83,9 @@ BitcoinGUI::BitcoinGUI(QWidget *parent) :
|
||||
setUnifiedTitleAndToolBarOnMac(true);
|
||||
QApplication::setAttribute(Qt::AA_DontShowIconsInMenus);
|
||||
#endif
|
||||
// Create wallet frame with main menu
|
||||
walletFrame = new WalletFrame(this);
|
||||
toolbarGUI20 = new GUIMenuToolbarWidget( this );
|
||||
connect( toolbarGUI20, SIGNAL( signalItemClicked( GUIMenuToolbarControl::EMenuToolbarItemTypes ) ), this, SLOT( slotMenuToolbarItemClicked( GUIMenuToolbarControl::EMenuToolbarItemTypes ) ), Qt::UniqueConnection );
|
||||
|
||||
// envelope them in another widget
|
||||
QWidget* pCentralWidget = new QWidget( this );
|
||||
QVBoxLayout* pBoxLayout = new QVBoxLayout();
|
||||
pBoxLayout->addWidget( toolbarGUI20->dockQmlToWidget() );
|
||||
pBoxLayout->addWidget( walletFrame );
|
||||
pCentralWidget->setLayout( pBoxLayout );
|
||||
|
||||
// and make it the central widget
|
||||
setCentralWidget(pCentralWidget);
|
||||
// Create wallet frame and make it the central widget
|
||||
walletFrame = new WalletFrame(this);
|
||||
setCentralWidget(walletFrame);
|
||||
|
||||
// Accept D&D of URIs
|
||||
setAcceptDrops(true);
|
||||
@@ -111,7 +98,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent) :
|
||||
createMenuBar();
|
||||
|
||||
// Create the toolbars
|
||||
// createToolBars();
|
||||
createToolBars();
|
||||
|
||||
// Create system tray icon and notification
|
||||
createTrayIcon();
|
||||
@@ -168,7 +155,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent) :
|
||||
|
||||
// Initially wallet actions should be disabled
|
||||
setWalletActionsEnabled(false);
|
||||
|
||||
}
|
||||
|
||||
BitcoinGUI::~BitcoinGUI()
|
||||
@@ -221,20 +207,6 @@ void BitcoinGUI::createActions()
|
||||
addressBookAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_5));
|
||||
tabGroup->addAction(addressBookAction);
|
||||
|
||||
pryptoRedeemAction = new QAction(QIcon(":/icons/receive"), tr("&Prypto Redeem"), this);
|
||||
pryptoRedeemAction->setStatusTip(tr("Redeem the value of a Prypto card to your wallet"));
|
||||
pryptoRedeemAction->setToolTip(pryptoRedeemAction->statusTip());
|
||||
pryptoRedeemAction->setCheckable(true);
|
||||
pryptoRedeemAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_6));
|
||||
tabGroup->addAction(pryptoRedeemAction);
|
||||
|
||||
infoPageAction = new QAction(QIcon(":/icons/bitcoin"), tr("&Information"), this);
|
||||
infoPageAction->setStatusTip(tr("Show all Casinocoin related information"));
|
||||
infoPageAction->setToolTip(infoPageAction->statusTip());
|
||||
infoPageAction->setCheckable(true);
|
||||
infoPageAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_7));
|
||||
tabGroup->addAction(infoPageAction);
|
||||
|
||||
connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||
connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
|
||||
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||
@@ -245,10 +217,6 @@ void BitcoinGUI::createActions()
|
||||
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
|
||||
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
|
||||
connect(pryptoRedeemAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||
connect(pryptoRedeemAction, SIGNAL(triggered()), this, SLOT(gotoPryptoPage()));
|
||||
connect(infoPageAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
|
||||
connect(infoPageAction, SIGNAL(triggered()), this, SLOT(gotoInfoPage()));
|
||||
|
||||
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
|
||||
quitAction->setStatusTip(tr("Quit application"));
|
||||
@@ -324,6 +292,17 @@ void BitcoinGUI::createMenuBar()
|
||||
help->addAction(aboutQtAction);
|
||||
}
|
||||
|
||||
void BitcoinGUI::createToolBars()
|
||||
{
|
||||
QToolBar *toolbar = addToolBar(tr("Tabs toolbar"));
|
||||
toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||
toolbar->addAction(overviewAction);
|
||||
toolbar->addAction(sendCoinsAction);
|
||||
toolbar->addAction(receiveCoinsAction);
|
||||
toolbar->addAction(historyAction);
|
||||
toolbar->addAction(addressBookAction);
|
||||
}
|
||||
|
||||
void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
||||
{
|
||||
this->clientModel = clientModel;
|
||||
@@ -345,6 +324,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"));
|
||||
}
|
||||
@@ -397,8 +377,6 @@ void BitcoinGUI::setWalletActionsEnabled(bool enabled)
|
||||
signMessageAction->setEnabled(enabled);
|
||||
verifyMessageAction->setEnabled(enabled);
|
||||
addressBookAction->setEnabled(enabled);
|
||||
pryptoRedeemAction->setEnabled(enabled);
|
||||
infoPageAction->setEnabled(enabled);
|
||||
}
|
||||
|
||||
void BitcoinGUI::createTrayIcon()
|
||||
@@ -495,61 +473,34 @@ void BitcoinGUI::optionsClicked()
|
||||
|
||||
void BitcoinGUI::aboutClicked()
|
||||
{
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::INFO );
|
||||
AboutDialog dlg;
|
||||
AboutDialog dlg;
|
||||
dlg.setModel(clientModel);
|
||||
dlg.exec();
|
||||
}
|
||||
|
||||
// TODO
|
||||
//void BitcoinGUI::redeemPryptoClicked()
|
||||
//{
|
||||
// if ( menuBar_new ) menuBar_new->SetCurrentItemType( GUIMenuToolbarControl::INFO );
|
||||
// RedeemPryptoDialog dlg;
|
||||
// dlg.setModel(clientModel);
|
||||
// dlg.exec();
|
||||
//}
|
||||
|
||||
void BitcoinGUI::gotoOverviewPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoOverviewPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::OVERVIEW );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoHistoryPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoHistoryPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::TRANSACTIONS );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoAddressBookPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoAddressBookPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::CONTACTS );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoPryptoPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoPryptoPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::REDEEM_PRYPTO );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoInfoPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoInfoPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::INFO );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoReceiveCoinsPage()
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoReceiveCoinsPage();
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::RECEIVE );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoSendCoinsPage(QString addr)
|
||||
{
|
||||
if (walletFrame) walletFrame->gotoSendCoinsPage(addr);
|
||||
if ( toolbarGUI20 ) toolbarGUI20->SetCurrentItemType( GUIMenuToolbarControl::SEND );
|
||||
}
|
||||
|
||||
void BitcoinGUI::gotoSignMessageTab(QString addr)
|
||||
@@ -893,44 +844,68 @@ void BitcoinGUI::detectShutdown()
|
||||
QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
void BitcoinGUI::slotMenuToolbarItemClicked( GUIMenuToolbarControl::EMenuToolbarItemTypes a_eType )
|
||||
void BitcoinGUI::reloadBlockchain(bool autoReload)
|
||||
{
|
||||
switch( a_eType )
|
||||
{
|
||||
case GUIMenuToolbarControl::OVERVIEW:
|
||||
{
|
||||
emit overviewAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::SEND:
|
||||
{
|
||||
emit sendCoinsAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::RECEIVE:
|
||||
{
|
||||
emit receiveCoinsAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::TRANSACTIONS:
|
||||
{
|
||||
emit historyAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::CONTACTS:
|
||||
{
|
||||
emit addressBookAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::REDEEM_PRYPTO:
|
||||
{
|
||||
emit pryptoRedeemAction->triggered();
|
||||
break;
|
||||
}
|
||||
case GUIMenuToolbarControl::INFO:
|
||||
{
|
||||
emit infoPageAction->triggered();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// define bootstrap location
|
||||
boost::filesystem::path bootstrapDirectory(GetDataDir() / "bootstrap");
|
||||
// create directories if not exist
|
||||
boost::system::error_code returnedError;
|
||||
boost::filesystem::create_directories( bootstrapDirectory, returnedError );
|
||||
if ( returnedError )
|
||||
printf("Error creating bootstrap directory.\n");
|
||||
boost::filesystem::path bootstrapFilesystemLocation(GetDataDir() / "bootstrap" / "bootstrap.zip");
|
||||
// QString bootstrapLocation = "https://cdn.rawgit.com/casinocoin/casinocoin/releases/download/1.3.0.0/bootstrap-20151012.zip";
|
||||
// QString bootstrapLocation = "http://119.81.188.59/download/bootstrap-20151012.zip";
|
||||
QString bootstrapLocation = "https://www.megamineros.com/downloads/bootstrap-20151012.zip";
|
||||
QUrl bootstrapUrl(bootstrapLocation);
|
||||
|
||||
// Don't auto-bootstrap if the file has already been downloaded
|
||||
if (boost::filesystem::exists(bootstrapFilesystemLocation) && autoReload)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't allow multiple instances of bootstrapping
|
||||
// reloadBlockchainActionEnabled(false); // Sets back to true when dialog closes.
|
||||
|
||||
// fBootstrapTurbo = true;
|
||||
|
||||
printf("Downloading blockchain data...\n");
|
||||
Downloader *bs = new Downloader(this, walletModel);
|
||||
bs->setWindowTitle("Blockchain Download");
|
||||
bs->setUrl(bootstrapUrl);
|
||||
bs->setDest(boostPathToQString(bootstrapFilesystemLocation));
|
||||
bs->processBlockchain = true;
|
||||
printf("Autoreload: %d\n", autoReload);
|
||||
if (autoReload) // Get bootsrap in auto mode (model)
|
||||
{
|
||||
bs->autoDownload = true;
|
||||
bs->exec();
|
||||
/** When doing a full block import from Downloader.cpp the below code needs to be enabled
|
||||
*
|
||||
printf("Downloading blockchain complete, now import from filesystem.");
|
||||
// create a thread to do the actual import
|
||||
new boost::thread(&ThreadImportBootsrap);
|
||||
// new boost::thread(boost::bind(&ThreadImportBootsrap, &threadGroup));
|
||||
// threadGroup.create_thread(&ThreadImportBootsrap);
|
||||
// remove downloader
|
||||
delete bs;
|
||||
*/
|
||||
// Bootstrap download and extract complete, restart Wallet
|
||||
if(bs->downloadFinished)
|
||||
{
|
||||
fRestart = true;
|
||||
printf("Downloading blockchain complete, now restarting wallet.");
|
||||
} else
|
||||
{
|
||||
fRestart = false;
|
||||
printf("Error during download blockchain or download was canceled.");
|
||||
}
|
||||
delete bs;
|
||||
StartShutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
bs->show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
#include <QMainWindow>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QMap>
|
||||
|
||||
#include "qtquick_controls/cpp/guimenutoolbarcontrol.h"
|
||||
#include <boost/thread.hpp>
|
||||
|
||||
class TransactionTableModel;
|
||||
class WalletFrame;
|
||||
@@ -20,9 +19,6 @@ class SendCoinsDialog;
|
||||
class SignVerifyMessageDialog;
|
||||
class Notificator;
|
||||
class RPCConsole;
|
||||
|
||||
class GUIMenuToolbarWidget;
|
||||
|
||||
class CWallet;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@@ -50,6 +46,10 @@ public:
|
||||
explicit BitcoinGUI(QWidget *parent = 0);
|
||||
~BitcoinGUI();
|
||||
|
||||
/** Set the thread group
|
||||
*/
|
||||
void setThreadGroup(boost::thread_group& threadGroup);
|
||||
|
||||
/** Set the client model.
|
||||
The client model represents the part of the core that communicates with the P2P network, and is wallet-agnostic.
|
||||
*/
|
||||
@@ -69,8 +69,6 @@ public:
|
||||
QAction * getOverviewAction() { return overviewAction; }
|
||||
QAction * getHistoryAction() { return historyAction; }
|
||||
QAction * getAddressBookAction() { return addressBookAction; }
|
||||
QAction * getPryptoRedeemAction() { return pryptoRedeemAction; }
|
||||
QAction * getInfoPageAction() { return infoPageAction; }
|
||||
QAction * getReceiveCoinsAction() { return receiveCoinsAction; }
|
||||
QAction * getSendCoinsAction() { return sendCoinsAction; }
|
||||
|
||||
@@ -83,8 +81,8 @@ protected:
|
||||
|
||||
private:
|
||||
ClientModel *clientModel;
|
||||
WalletModel *walletModel;
|
||||
WalletFrame *walletFrame;
|
||||
GUIMenuToolbarWidget *toolbarGUI20;
|
||||
|
||||
QLabel *labelEncryptionIcon;
|
||||
QLabel *labelConnectionsIcon;
|
||||
@@ -109,8 +107,6 @@ private:
|
||||
QAction *changePassphraseAction;
|
||||
QAction *aboutQtAction;
|
||||
QAction *openRPCConsoleAction;
|
||||
QAction *pryptoRedeemAction;
|
||||
QAction *infoPageAction;
|
||||
|
||||
QSystemTrayIcon *trayIcon;
|
||||
Notificator *notificator;
|
||||
@@ -125,6 +121,8 @@ private:
|
||||
void createActions();
|
||||
/** Create the menu bar and sub-menus. */
|
||||
void createMenuBar();
|
||||
/** Create the toolbars */
|
||||
void createToolBars();
|
||||
/** Create system tray icon and notification */
|
||||
void createTrayIcon();
|
||||
/** Create system tray menu (or setup the dock menu) */
|
||||
@@ -169,6 +167,9 @@ public slots:
|
||||
/** Show incoming transaction notification for new transactions. */
|
||||
void incomingTransaction(const QString& date, int unit, qint64 amount, const QString& type, const QString& address);
|
||||
|
||||
/** Reload the blockchain from downloaded file **/
|
||||
void reloadBlockchain(bool autoReload=false);
|
||||
|
||||
private slots:
|
||||
/** Switch to overview (home) page */
|
||||
void gotoOverviewPage();
|
||||
@@ -176,14 +177,10 @@ private slots:
|
||||
void gotoHistoryPage();
|
||||
/** Switch to address book page */
|
||||
void gotoAddressBookPage();
|
||||
/** Switch to redeem prypto page */
|
||||
void gotoPryptoPage();
|
||||
/** Switch to receive coins page */
|
||||
void gotoReceiveCoinsPage();
|
||||
/** Switch to send coins page */
|
||||
void gotoSendCoinsPage(QString addr = "");
|
||||
/** Switch to info page */
|
||||
void gotoInfoPage();
|
||||
|
||||
/** Show Sign/Verify Message dialog and switch to sign message tab */
|
||||
void gotoSignMessageTab(QString addr = "");
|
||||
@@ -206,9 +203,6 @@ private slots:
|
||||
|
||||
/** called by a timer to check if fRequestShutdown has been set **/
|
||||
void detectShutdown();
|
||||
|
||||
/** called from new Qml menu toolbar on user click **/
|
||||
void slotMenuToolbarItemClicked( GUIMenuToolbarControl::EMenuToolbarItemTypes a_eType );
|
||||
};
|
||||
|
||||
#endif // BITCOINGUI_H
|
||||
|
||||
@@ -160,7 +160,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Prepend debug output with timestamp"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Rebuild block chain index from current blk000??.dat files"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning Blockchain, please wait ..."),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Run in the background as a daemon and accept commands"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "SSL options: (see the CasinoCoin Wiki for SSL setup instructions)"),
|
||||
QT_TRANSLATE_NOOP("bitcoin-core", "Select the version of socks proxy to use (4-5, default: 5)"),
|
||||
|
||||
@@ -1,429 +0,0 @@
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "cscfusionstyle.h"
|
||||
#include "gui20_skin.h"
|
||||
|
||||
CSCFusionStyle::CSCFusionStyle() :
|
||||
QProxyStyle(QStyleFactory::create("fusion"))
|
||||
{
|
||||
}
|
||||
|
||||
void CSCFusionStyle::polish(QPalette &palette)
|
||||
{
|
||||
GUI20Skin& skin = GUI20Skin::Instance();
|
||||
QLinearGradient buttonGradient;
|
||||
buttonGradient.setColorAt( 0, skin.GetColorButtonTopGradient() );
|
||||
buttonGradient.setColorAt( 1, skin.GetColorButtonBottomGradient() );
|
||||
|
||||
QLinearGradient toolTipGradient;
|
||||
toolTipGradient.setColorAt( 0, skin.GetColorToolbarMainGradientBegin() );
|
||||
toolTipGradient.setColorAt( 1, skin.GetColorToolbarMainGradientEnd() );
|
||||
|
||||
palette = QPalette();
|
||||
|
||||
|
||||
palette.setBrush( QPalette::Active, QPalette::Text, skin.GetColorTextActive() );
|
||||
palette.setBrush( QPalette::Active, QPalette::BrightText, skin.GetColorTextActiveAutocomplete() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Base, skin.GetColorFrameBackground() );
|
||||
palette.setBrush( QPalette::Active, QPalette::AlternateBase, skin.GetColorListValueAlternative() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Highlight, skin.GetColorListCurrent() );
|
||||
palette.setBrush( QPalette::Active, QPalette::HighlightedText, skin.GetColorTextActive() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Button, skin.GetColorButtonBottomGradient() );
|
||||
palette.setBrush( QPalette::Active, QPalette::ButtonText, skin.GetColorTextActive() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Mid, skin.GetColorButtonMid() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Dark, skin.GetColorButtonDark() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Light, skin.GetColorButtonLight() );
|
||||
palette.setBrush( QPalette::Active, QPalette::Window, skin.GetColorWindowBackground() );
|
||||
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Text, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::BrightText, skin.GetColorTextDisabledAutocomplete() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Base, skin.GetColorFrameBackground() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::AlternateBase, skin.GetColorListValueAlternative() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Highlight, skin.GetColorListCurrent() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::HighlightedText, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Button, skin.GetColorButtonBottomGradient() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::ButtonText, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Mid, skin.GetColorButtonMid() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Dark, skin.GetColorButtonDark() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Light, skin.GetColorButtonLight() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::Window, skin.GetColorWindowBackground() );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::ToolTipBase, toolTipGradient );
|
||||
palette.setBrush( QPalette::Inactive, QPalette::ToolTipText, skin.GetColorToolbarMainTextCurrent() );
|
||||
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Text, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::BrightText, skin.GetColorTextDisabledAutocomplete() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Base, skin.GetColorFrameBackground() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::AlternateBase, skin.GetColorListValueAlternative() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Highlight, skin.GetColorListCurrent() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::HighlightedText, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Button, skin.GetColorButtonBottomGradient() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::ButtonText, skin.GetColorTextDisabled() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Mid, skin.GetColorButtonMid() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Dark, skin.GetColorButtonDark() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Light, skin.GetColorButtonLight() );
|
||||
palette.setBrush( QPalette::Disabled, QPalette::Window, skin.GetColorWindowBackground() );
|
||||
|
||||
}
|
||||
|
||||
void CSCFusionStyle::polish(QWidget *widget)
|
||||
{
|
||||
if ( qobject_cast<QPushButton *>(widget)
|
||||
|| qobject_cast<QComboBox *>(widget)
|
||||
)
|
||||
{
|
||||
widget->setAttribute(Qt::WA_Hover, true);
|
||||
}
|
||||
}
|
||||
|
||||
void CSCFusionStyle::unpolish(QWidget *widget)
|
||||
{
|
||||
if ( qobject_cast<QPushButton *>(widget)
|
||||
|| qobject_cast<QComboBox *>(widget)
|
||||
)
|
||||
{
|
||||
widget->setAttribute(Qt::WA_Hover, false);
|
||||
}
|
||||
}
|
||||
|
||||
int CSCFusionStyle::pixelMetric(PixelMetric metric,
|
||||
const QStyleOption *option,
|
||||
const QWidget *widget) const
|
||||
{
|
||||
switch (metric)
|
||||
{
|
||||
case PM_DefaultFrameWidth:
|
||||
case PM_ComboBoxFrameWidth:
|
||||
case PM_SpinBoxFrameWidth:
|
||||
case PM_CheckBoxLabelSpacing:
|
||||
case PM_HeaderMargin:
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
case PM_IndicatorHeight:
|
||||
case PM_IndicatorWidth:
|
||||
case PM_ExclusiveIndicatorWidth:
|
||||
case PM_ExclusiveIndicatorHeight:
|
||||
{
|
||||
return 18;
|
||||
}
|
||||
case PM_ScrollBarExtent:
|
||||
{
|
||||
return QProxyStyle::pixelMetric(metric, option, widget) + 4;
|
||||
}
|
||||
case PM_ToolTipLabelFrameWidth:
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return QProxyStyle::pixelMetric(metric, option, widget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int CSCFusionStyle::styleHint(StyleHint hint, const QStyleOption *option,
|
||||
const QWidget *widget,
|
||||
QStyleHintReturn *returnData) const
|
||||
{
|
||||
switch (hint)
|
||||
{
|
||||
case SH_DitherDisabledText:
|
||||
{
|
||||
return int(false);
|
||||
}
|
||||
case SH_EtchDisabledText:
|
||||
{
|
||||
return int(true);
|
||||
}
|
||||
default:
|
||||
{
|
||||
return QProxyStyle::styleHint(hint, option, widget, returnData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CSCFusionStyle::drawPrimitive(PrimitiveElement element,
|
||||
const QStyleOption *option,
|
||||
QPainter *painter,
|
||||
const QWidget *widget) const
|
||||
{
|
||||
GUI20Skin& skin = GUI20Skin::Instance();
|
||||
|
||||
switch (element)
|
||||
{
|
||||
case PE_FrameDefaultButton:
|
||||
{
|
||||
return;
|
||||
}
|
||||
case PE_FrameFocusRect:
|
||||
{
|
||||
return;
|
||||
}
|
||||
case PE_PanelItemViewRow:
|
||||
{
|
||||
QPainterPath roundRect = roundRectPath(option->rect, 0);
|
||||
|
||||
QBrush brush = option->palette.base();
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
painter->fillPath(roundRect, brush);
|
||||
painter->restore();
|
||||
break;
|
||||
}
|
||||
// case PE_IndicatorArrowDown:
|
||||
// case PE_IndicatorArrowUp:
|
||||
// case PE_IndicatorArrowLeft:
|
||||
// case PE_IndicatorArrowRight:
|
||||
// {
|
||||
// int x, y, width, height;
|
||||
// option->rect.getRect(&x, &y, &width, &height);
|
||||
// painter->save();
|
||||
// painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
// QImage imgArrow;
|
||||
// QString strPath = ":/icons/advertsArrow";
|
||||
// if ( element == PE_IndicatorArrowDown || PE_IndicatorSpinDown || PE_IndicatorSpinMinus )
|
||||
// {
|
||||
// strPath.append( "Down" );
|
||||
// }
|
||||
// else if ( element == PE_IndicatorArrowLeft )
|
||||
// {
|
||||
// strPath.append( "Left" );
|
||||
// }
|
||||
// else if ( element == PE_IndicatorArrowUp || PE_IndicatorSpinUp || PE_IndicatorSpinPlus )
|
||||
// {
|
||||
// strPath.append( "Up" );
|
||||
// }
|
||||
// else if ( element == PE_IndicatorArrowRight )
|
||||
// {
|
||||
// strPath.append( "Right" );
|
||||
// }
|
||||
|
||||
// if ( option->state & QStyle::State_MouseOver )
|
||||
// {
|
||||
// strPath.append( "Hover" );
|
||||
// }
|
||||
// qDebug() << "gonna draw: " << strPath;
|
||||
// imgArrow.load( strPath );
|
||||
// int iTopLeftX = x + ( ( ( width - imgArrow.width() ) / 2 ) );
|
||||
// int iTopLeftY = y + ( ( ( height - imgArrow.height() ) / 2 ) );
|
||||
// painter->drawImage( QPoint( iTopLeftX, iTopLeftY), imgArrow );
|
||||
// painter->restore();
|
||||
// break;
|
||||
// }
|
||||
case PE_FrameGroupBox:
|
||||
case PE_FrameWindow:
|
||||
case PE_Frame:
|
||||
{
|
||||
int x, y, width, height;
|
||||
option->rect.getRect(&x, &y, &width, &height);
|
||||
|
||||
QPainterPath roundRect = roundRectPath(option->rect, 5);
|
||||
|
||||
QBrush brush = option->palette.base();
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
painter->fillPath(roundRect, brush);
|
||||
painter->restore();
|
||||
break;
|
||||
}
|
||||
case PE_IndicatorRadioButton:
|
||||
{
|
||||
int x, y, width, height;
|
||||
option->rect.getRect(&x, &y, &width, &height);
|
||||
|
||||
QPainterPath roundRect = roundRectPath( QRect( x + 1, y + 1, width - 1, height - 1 ), ( width -1 ) / 2);
|
||||
QPen pen( skin.GetColorToolbarMainGradientBegin(), 2 );
|
||||
painter->save();
|
||||
painter->setPen( pen );
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
painter->drawPath( roundRect );
|
||||
if ( option->state & QStyle::State_Off )
|
||||
{
|
||||
}
|
||||
else if ( option->state & QStyle::State_On )
|
||||
{
|
||||
QImage checkboxTick( ":/icons/radiobuttonTick" );
|
||||
checkboxTick = checkboxTick.scaled( 10, 10 );
|
||||
int iTopLeftX = x + ( ( ( width - checkboxTick.width() ) / 2 ) );
|
||||
int iTopLeftY = y + ( ( ( height - checkboxTick.height() ) / 2 ) );
|
||||
painter->drawImage( QPoint( iTopLeftX, iTopLeftY ), checkboxTick );
|
||||
}
|
||||
painter->restore();
|
||||
break;
|
||||
}
|
||||
case PE_IndicatorCheckBox:
|
||||
{
|
||||
int x, y, width, height;
|
||||
option->rect.getRect(&x, &y, &width, &height);
|
||||
|
||||
QPainterPath roundRect = roundRectPath( QRect( x + 1, y + 1, width - 1, height - 1 ), 2 );
|
||||
QPen pen( skin.GetColorToolbarMainGradientBegin(), 2 );
|
||||
painter->save();
|
||||
painter->setPen( pen );
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
painter->drawPath( roundRect );
|
||||
if ( option->state & QStyle::State_Off )
|
||||
{
|
||||
}
|
||||
else if ( option->state & QStyle::State_On )
|
||||
{
|
||||
QImage checkboxTick( ":/icons/checkboxTick" );
|
||||
int iTopLeftX = x + ( ( ( width - checkboxTick.width() ) / 2 ) );
|
||||
int iTopLeftY = y + ( ( ( height - checkboxTick.height() ) / 2 ) );
|
||||
painter->drawImage( QPoint( iTopLeftX, iTopLeftY ), checkboxTick );
|
||||
}
|
||||
painter->restore();
|
||||
break;
|
||||
}
|
||||
case PE_PanelButtonCommand:
|
||||
{
|
||||
GUI20Skin& skin = GUI20Skin::Instance();
|
||||
int delta = (option->state & State_MouseOver) ? 64 : 0;
|
||||
QColor semiTransparentWhite = skin.GetColorButtonLight();
|
||||
semiTransparentWhite.setAlpha(127 + delta);
|
||||
QColor semiTransparentBlack = skin.GetColorButtonDark();
|
||||
semiTransparentBlack.setAlpha(127 - delta);
|
||||
|
||||
int x, y, width, height;
|
||||
option->rect.getRect(&x, &y, &width, &height);
|
||||
|
||||
int radius = 5;
|
||||
QPainterPath roundRect = roundRectPath( QRect( x + 1, y + 1, width - 1, height - 1 ), radius );
|
||||
|
||||
QBrush brush;
|
||||
|
||||
if (option->state & (State_Sunken | State_On))
|
||||
{
|
||||
brush = option->palette.mid();
|
||||
}
|
||||
else
|
||||
{
|
||||
brush = option->palette.button();
|
||||
}
|
||||
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
painter->fillPath(roundRect, brush);
|
||||
|
||||
int penWidth;
|
||||
if (radius < 10)
|
||||
{
|
||||
penWidth = 3;
|
||||
}
|
||||
else if (radius < 20)
|
||||
{
|
||||
penWidth = 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
penWidth = 7;
|
||||
}
|
||||
|
||||
QPen topPen(semiTransparentWhite, penWidth);
|
||||
QPen bottomPen(semiTransparentBlack, penWidth);
|
||||
|
||||
if (option->state & (State_Sunken | State_On))
|
||||
{
|
||||
qSwap(topPen, bottomPen);
|
||||
}
|
||||
|
||||
int x1 = x;
|
||||
int x2 = x + radius;
|
||||
int x3 = x + width - radius;
|
||||
int x4 = x + width;
|
||||
|
||||
if (option->direction == Qt::RightToLeft)
|
||||
{
|
||||
qSwap(x1, x4);
|
||||
qSwap(x2, x3);
|
||||
}
|
||||
|
||||
QPolygon topHalf;
|
||||
topHalf << QPoint(x1, y)
|
||||
<< QPoint(x4, y)
|
||||
<< QPoint(x3, y + radius)
|
||||
<< QPoint(x2, y + height - radius)
|
||||
<< QPoint(x1, y + height);
|
||||
|
||||
painter->setClipPath(roundRect);
|
||||
painter->setClipRegion(topHalf, Qt::IntersectClip);
|
||||
painter->setPen(topPen);
|
||||
painter->drawPath(roundRect);
|
||||
|
||||
QPolygon bottomHalf = topHalf;
|
||||
bottomHalf[0] = QPoint(x4, y + height);
|
||||
|
||||
painter->setClipPath(roundRect);
|
||||
painter->setClipRegion(bottomHalf, Qt::IntersectClip);
|
||||
painter->setPen(bottomPen);
|
||||
painter->drawPath(roundRect);
|
||||
|
||||
painter->setPen(option->palette.foreground().color());
|
||||
painter->setClipping(false);
|
||||
painter->drawPath(roundRect);
|
||||
|
||||
painter->restore();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
QProxyStyle::drawPrimitive(element, option, painter, widget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CSCFusionStyle::drawControl(ControlElement element,
|
||||
const QStyleOption *option,
|
||||
QPainter *painter,
|
||||
const QWidget *widget) const
|
||||
{
|
||||
switch (element)
|
||||
{
|
||||
case CE_PushButtonLabel:
|
||||
{
|
||||
QStyleOptionButton myButtonOption;
|
||||
const QStyleOptionButton *buttonOption =
|
||||
qstyleoption_cast<const QStyleOptionButton *>(option);
|
||||
if (buttonOption)
|
||||
{
|
||||
myButtonOption = *buttonOption;
|
||||
if (myButtonOption.palette.currentColorGroup() != QPalette::Disabled)
|
||||
{
|
||||
if (myButtonOption.state & (State_Sunken | State_On))
|
||||
{
|
||||
myButtonOption.palette.setBrush(QPalette::ButtonText,
|
||||
myButtonOption.palette.brightText());
|
||||
}
|
||||
}
|
||||
}
|
||||
QProxyStyle::drawControl(element, &myButtonOption, painter, widget);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
QProxyStyle::drawControl(element, option, painter, widget);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QPainterPath CSCFusionStyle::roundRectPath(const QRect &rect, int radius)
|
||||
{
|
||||
int diam = 2 * radius;
|
||||
|
||||
int x1, y1, x2, y2;
|
||||
rect.getCoords(&x1, &y1, &x2, &y2);
|
||||
|
||||
QPainterPath path;
|
||||
path.moveTo(x2, y1 + radius);
|
||||
path.arcTo(QRect(x2 - diam, y1, diam, diam), 0.0, +90.0);
|
||||
path.lineTo(x1 + radius, y1);
|
||||
path.arcTo(QRect(x1, y1, diam, diam), 90.0, +90.0);
|
||||
path.lineTo(x1, y2 - radius);
|
||||
path.arcTo(QRect(x1, y2 - diam, diam, diam), 180.0, +90.0);
|
||||
path.lineTo(x1 + radius, y2);
|
||||
path.arcTo(QRect(x2 - diam, y2 - diam, diam, diam), 270.0, +90.0);
|
||||
path.closeSubpath();
|
||||
return path;
|
||||
}
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** You may use this file under the terms of the BSD license as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
|
||||
** of its contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CSCFUSIONSTYLE_H
|
||||
#define CSCFUSIONSTYLE_H
|
||||
|
||||
#include <QProxyStyle>
|
||||
#include <QPalette>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QPainterPath;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
//! [0]
|
||||
class CSCFusionStyle : public QProxyStyle
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CSCFusionStyle();
|
||||
|
||||
void polish(QPalette &palette) Q_DECL_OVERRIDE;
|
||||
void polish(QWidget *widget) Q_DECL_OVERRIDE;
|
||||
void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
|
||||
int pixelMetric(PixelMetric metric, const QStyleOption *option,
|
||||
const QWidget *widget) const Q_DECL_OVERRIDE;
|
||||
int styleHint(StyleHint hint, const QStyleOption *option,
|
||||
const QWidget *widget, QStyleHintReturn *returnData) const Q_DECL_OVERRIDE;
|
||||
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
|
||||
QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
|
||||
void drawControl(ControlElement control, const QStyleOption *option,
|
||||
QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
static QPainterPath roundRectPath(const QRect &rect, int radius);
|
||||
|
||||
};
|
||||
//! [0]
|
||||
|
||||
#endif
|
||||
@@ -1,116 +0,0 @@
|
||||
#include "currencies.h"
|
||||
#include <QStringList>
|
||||
#include <QLocale>
|
||||
|
||||
Currencies::Currencies(QObject *parent):
|
||||
QAbstractListModel(parent),
|
||||
currencylist(availableCurrencies())
|
||||
{
|
||||
}
|
||||
|
||||
QList<Currencies::FiatCurrencyID> Currencies::availableCurrencies()
|
||||
{
|
||||
QList<Currencies::FiatCurrencyID> currencylist;
|
||||
currencylist.append(USD);
|
||||
currencylist.append(EUR);
|
||||
currencylist.append(CNY);
|
||||
currencylist.append(JPY);
|
||||
currencylist.append(RUB);
|
||||
return currencylist;
|
||||
}
|
||||
|
||||
bool Currencies::valid(int currency)
|
||||
{
|
||||
switch(currency)
|
||||
{
|
||||
case USD:
|
||||
case EUR:
|
||||
case CNY:
|
||||
case JPY:
|
||||
case RUB:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
QString Currencies::name(int currency)
|
||||
{
|
||||
switch(currency)
|
||||
{
|
||||
case USD: return QString("USD");
|
||||
case EUR: return QString("EUR");
|
||||
case CNY: return QString("CNY");
|
||||
case JPY: return QString("JPY");
|
||||
case RUB: return QString("RUB");
|
||||
default: return QString("???");
|
||||
}
|
||||
}
|
||||
|
||||
QString Currencies::description(int currency)
|
||||
{
|
||||
switch(currency)
|
||||
{
|
||||
case USD: return QString("US Dollars");
|
||||
case EUR: return QString("European Euro");
|
||||
case CNY: return QString("Chinese Yuan");
|
||||
case JPY: return QString("Japanese Yen");
|
||||
case RUB: return QString("Russian Ruble");
|
||||
default: return QString("???");
|
||||
}
|
||||
}
|
||||
|
||||
QString Currencies::symbol(int currency)
|
||||
{
|
||||
switch(currency)
|
||||
{
|
||||
case USD: return QString("$");
|
||||
case EUR: return QString("€");
|
||||
case CNY: return QString("¥");
|
||||
case JPY: return QString("¥");
|
||||
case RUB: return QString("₽");
|
||||
default: return QString("$");
|
||||
}
|
||||
}
|
||||
|
||||
QString Currencies::format(int currency, double value, bool useSymbol)
|
||||
{
|
||||
// divide by satoshi
|
||||
double fiatValue = value * 0.00000001;
|
||||
QString formattedValue = "";
|
||||
if(useSymbol)
|
||||
{
|
||||
formattedValue.append(symbol(currency)).append(" ");
|
||||
}
|
||||
// apply format
|
||||
QLocale::setDefault( QLocale(QLocale::English, QLocale::UnitedStates) );
|
||||
formattedValue.append(QString("%L1").arg(fiatValue, 0, 'f', 2)).append(" ").append(name(currency));
|
||||
return formattedValue;
|
||||
}
|
||||
|
||||
int Currencies::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return currencylist.size();
|
||||
}
|
||||
|
||||
QVariant Currencies::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
int row = index.row();
|
||||
if(row >= 0 && row < currencylist.size())
|
||||
{
|
||||
FiatCurrencyID currency = currencylist.at(row);
|
||||
switch(role)
|
||||
{
|
||||
case Qt::EditRole:
|
||||
case Qt::DisplayRole:
|
||||
return QVariant(name(currency));
|
||||
case Qt::ToolTipRole:
|
||||
return QVariant(description(currency));
|
||||
case CurrencyRole:
|
||||
return QVariant(static_cast<int>(currency));
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
#ifndef CURRENCIES_H
|
||||
#define CURRENCIES_H
|
||||
|
||||
#include <QAbstractListModel>
|
||||
|
||||
class Currencies : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Currencies(QObject *parent);
|
||||
|
||||
enum FiatCurrencyID {
|
||||
USD,
|
||||
EUR,
|
||||
CNY,
|
||||
JPY,
|
||||
RUB,
|
||||
};
|
||||
|
||||
//! Get list of currencies, for drop-down box
|
||||
static QList<FiatCurrencyID> availableCurrencies();
|
||||
//! Is currency ID valid?
|
||||
static bool valid(int currency);
|
||||
//! Short name
|
||||
static QString name(int currency);
|
||||
//! Longer description
|
||||
static QString description(int unit);
|
||||
//! symbol
|
||||
static QString symbol(int currency);
|
||||
//! Format value
|
||||
static QString format(int currency, double value, bool symbol);
|
||||
|
||||
//! @name AbstractListModel implementation
|
||||
//! List model for currency drop-down selection box.
|
||||
///@{
|
||||
enum RoleIndex {
|
||||
/** Currency identifier */
|
||||
CurrencyRole = Qt::UserRole
|
||||
};
|
||||
int rowCount(const QModelIndex &parent) const;
|
||||
QVariant data(const QModelIndex &index, int role) const;
|
||||
///@}
|
||||
|
||||
private:
|
||||
QList<Currencies::FiatCurrencyID> currencylist;
|
||||
};
|
||||
typedef Currencies::FiatCurrencyID Currency;
|
||||
|
||||
#endif // CURRENCIES_H
|
||||
612
src/qt/downloader.cpp
Executable file
612
src/qt/downloader.cpp
Executable file
@@ -0,0 +1,612 @@
|
||||
#include "downloader.h"
|
||||
#include "ui_downloader.h"
|
||||
#include "bitcoingui.h"
|
||||
#include "guiconstants.h"
|
||||
#include "guiutil.h"
|
||||
#include "util.h"
|
||||
#include "quazip/JlCompress.h"
|
||||
#include "init.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QProgressBar>
|
||||
#include <boost/version.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
using namespace GUIUtil;
|
||||
|
||||
Downloader::Downloader(QWidget *parent, WalletModel *walletModel) :
|
||||
QDialog(parent),
|
||||
walletModel(0),
|
||||
ui(new Ui::Downloader)
|
||||
{
|
||||
this->walletModel = walletModel;
|
||||
this->setFixedWidth(480);
|
||||
|
||||
ui->setupUi(this);
|
||||
ui->urlEdit->setText("");
|
||||
ui->statusLabel->setWordWrap(true);
|
||||
ui->downloadButton->setAutoDefault(false);
|
||||
ui->continueButton->setAutoDefault(false);
|
||||
ui->quitButton->setAutoDefault(false);
|
||||
|
||||
// Progress bar and label for blockchain download/extract, and auto update
|
||||
ui->progressBarLabel->setText(tr("Status:"));
|
||||
ui->progressBar->setValue(0);
|
||||
|
||||
// Create a timer to handle hung download requests
|
||||
downloadTimer = new QTimer(this);
|
||||
connect(downloadTimer, SIGNAL(timeout()), this, SLOT(timerCheckDownloadProgress()));
|
||||
|
||||
// These will be set true when Cancel/Continue/Quit pressed
|
||||
downloaderQuit = false;
|
||||
httpRequestAborted = false;
|
||||
downloadFinished = false;
|
||||
|
||||
// These are set by the class creating the Downloader object
|
||||
autoDownload = false;
|
||||
processBlockchain = false;
|
||||
|
||||
// Init these, or else
|
||||
reply = 0;
|
||||
file = 0;
|
||||
manager = 0;
|
||||
|
||||
connect(ui->urlEdit, SIGNAL(textChanged(QString)),
|
||||
this, SLOT(enableDownloadButton()));
|
||||
}
|
||||
|
||||
Downloader::~Downloader()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void Downloader::showEvent(QShowEvent *e)
|
||||
{
|
||||
if (autoDownload)
|
||||
{
|
||||
ui->quitButton->setEnabled(true);
|
||||
on_downloadButton_clicked();
|
||||
}
|
||||
}
|
||||
|
||||
void Downloader::on_continueButton_clicked() // Next button
|
||||
{
|
||||
if (downloadFinished && processBlockchain)
|
||||
{
|
||||
reloadBlockchain();
|
||||
}
|
||||
}
|
||||
|
||||
void Downloader::on_quitButton_clicked() // Cancel button
|
||||
{
|
||||
printf("on_quitButton_clicked.\n");
|
||||
downloaderQuit = true;
|
||||
if (!downloadFinished)
|
||||
{
|
||||
// Clean-up
|
||||
if (!httpRequestAborted)
|
||||
{
|
||||
if (reply)
|
||||
{
|
||||
reply->abort();
|
||||
}
|
||||
httpRequestAborted = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (processBlockchain)
|
||||
{
|
||||
BitcoinGUI *p = qobject_cast<BitcoinGUI *>(parent());
|
||||
// p->reloadBlockchainActionEnabled(true); // Set menu option back to true when dialog closes.
|
||||
processBlockchain = false;
|
||||
}
|
||||
}
|
||||
this->close();
|
||||
}
|
||||
|
||||
void Downloader::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (!downloaderQuit)
|
||||
on_quitButton_clicked();
|
||||
else
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
||||
// Network error ocurred. Download cancelled
|
||||
void Downloader::networkError()
|
||||
{
|
||||
if (!downloaderQuit)
|
||||
cancelDownload();
|
||||
}
|
||||
|
||||
// During the download progress, it can be canceled
|
||||
void Downloader::cancelDownload()
|
||||
{
|
||||
printf("cancelDownload().\n");
|
||||
// Finished with timer
|
||||
if (downloadTimer->isActive())
|
||||
{
|
||||
downloadTimer->stop();
|
||||
}
|
||||
|
||||
if (!reply->errorString().isEmpty())
|
||||
{
|
||||
ui->statusLabel->setText(tr("The download was canceled.\n\n%1").arg(reply->errorString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->statusLabel->setText(tr("The download was canceled."));
|
||||
}
|
||||
if (reply)
|
||||
{
|
||||
reply->abort();
|
||||
}
|
||||
httpRequestAborted = true;
|
||||
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
}
|
||||
|
||||
void Downloader::on_downloadButton_clicked()
|
||||
{
|
||||
printf("on_downloadButton_clicked.\n");
|
||||
downloadFinished = false;
|
||||
|
||||
// get url
|
||||
url = (ui->urlEdit->text());
|
||||
|
||||
QFileInfo fileInfo(url.path());
|
||||
QString fileName = fileInfo.fileName();
|
||||
|
||||
if (fileName.isEmpty())
|
||||
{
|
||||
if (!autoDownload)
|
||||
{
|
||||
QMessageBox::information(this, tr("Downloader"),
|
||||
tr("Filename cannot be empty.")
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!fileDest.fileName().isEmpty())
|
||||
{
|
||||
fileName = fileDest.filePath();
|
||||
}
|
||||
QByteArray ba = fileName.toLatin1();
|
||||
const char *c_str2 = ba.data();
|
||||
printf("on_downloadButton_clicked, filename: %s\n", c_str2);
|
||||
fileDest = QFileInfo(fileName);
|
||||
|
||||
if (fileDest.exists())
|
||||
{
|
||||
if (!autoDownload)
|
||||
{
|
||||
if (QMessageBox::question(this, tr("Downloader"),
|
||||
tr("The file \"%1\" already exists. Overwrite it?").arg(fileName),
|
||||
QMessageBox::Yes|QMessageBox::No, QMessageBox::No)
|
||||
== QMessageBox::No)
|
||||
{
|
||||
ui->continueButton->setEnabled(true);
|
||||
downloadFinished = true;
|
||||
ui->progressBar->setMaximum(100);
|
||||
ui->progressBar->setValue(100);
|
||||
return;
|
||||
}
|
||||
}
|
||||
QFile::remove(fileName);
|
||||
}
|
||||
|
||||
manager = new QNetworkAccessManager(this);
|
||||
|
||||
file = new QFile(fileName);
|
||||
if (!file->open(QIODevice::WriteOnly))
|
||||
{
|
||||
if (!autoDownload)
|
||||
{
|
||||
QMessageBox::information(this, tr("Downloader"),
|
||||
tr("Unable to save the file \"%1\": %2.")
|
||||
.arg(fileName).arg(file->errorString()));
|
||||
}
|
||||
delete file;
|
||||
file = 0;
|
||||
ui->continueButton->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// These will be set true when Cancel/Continue/Quit pressed
|
||||
downloaderQuit = false;
|
||||
httpRequestAborted = false;
|
||||
|
||||
ui->progressBarLabel->setText(tr("Downloading:"));
|
||||
ui->progressBar->setValue(0);
|
||||
|
||||
// download button disabled after requesting download.
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->continueButton->setEnabled(false);
|
||||
|
||||
startRequest(url);
|
||||
}
|
||||
|
||||
// This will be called when download button is clicked (or from Autodownload feature)
|
||||
void Downloader::startRequest(QUrl url)
|
||||
{
|
||||
downloadProgress = 0;
|
||||
downloadFinished = false;
|
||||
|
||||
// Start the timer
|
||||
downloadTimer->start(30000);
|
||||
|
||||
// get() method posts a request
|
||||
// to obtain the contents of the target request
|
||||
// and returns a new QNetworkReply object
|
||||
// opened for reading which emits
|
||||
// the readyRead() signal whenever new data arrives.
|
||||
reply = manager->get(QNetworkRequest(url));
|
||||
reply->ignoreSslErrors();
|
||||
|
||||
// Whenever more data is received from the network,
|
||||
// this readyRead() signal is emitted
|
||||
connect(reply, SIGNAL(readyRead()),
|
||||
this, SLOT(httpReadyRead()));
|
||||
|
||||
// Also, downloadProgress() signal is emitted when data is received
|
||||
connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
|
||||
this, SLOT(updateDownloadProgress(qint64,qint64)));
|
||||
|
||||
// This signal is emitted when the reply has finished processing.
|
||||
// After this signal is emitted,
|
||||
// there will be no more updates to the reply's data or metadata.
|
||||
connect(reply, SIGNAL(finished()),
|
||||
this, SLOT(downloaderFinished()));
|
||||
|
||||
// Network error
|
||||
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
|
||||
this, SLOT(networkError()));
|
||||
|
||||
QString statusText(tr("Please wait for the download to complete..."));
|
||||
if (processBlockchain)
|
||||
{
|
||||
statusText.append(tr("\n\nThe Casinocoin wallet will automatically load the blockchain after extracting the bootstrap."));
|
||||
}
|
||||
ui->statusLabel->setText(statusText);
|
||||
}
|
||||
|
||||
// When download finished or canceled, this will be called
|
||||
void Downloader::downloaderFinished()
|
||||
{
|
||||
// Finished with timer
|
||||
if (downloadTimer->isActive())
|
||||
{
|
||||
downloadTimer->stop();
|
||||
}
|
||||
|
||||
// when canceled
|
||||
if (httpRequestAborted)
|
||||
{
|
||||
if (file)
|
||||
{
|
||||
file->close();
|
||||
file->remove();
|
||||
delete file;
|
||||
file = 0;
|
||||
}
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// when partial
|
||||
if (processBlockchain && file && file->size() < 1000000)
|
||||
{
|
||||
if (file)
|
||||
{
|
||||
file->close();
|
||||
file->remove();
|
||||
delete file;
|
||||
file = 0;
|
||||
}
|
||||
ui->statusLabel->setText("Error: Download ended prematurely.");
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// download finished normally
|
||||
file->flush();
|
||||
file->close();
|
||||
|
||||
// get redirection url
|
||||
QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
|
||||
if (reply->error())
|
||||
{
|
||||
file->remove();
|
||||
if (!autoDownload)
|
||||
{
|
||||
QMessageBox::information(this, tr("Downloader"),
|
||||
tr("Download terminated: %1.").arg(reply->errorString()));
|
||||
}
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!redirectionTarget.isNull())
|
||||
{
|
||||
QUrl newUrl = url.resolved(redirectionTarget.toUrl());
|
||||
if (autoDownload || QMessageBox::question(this, tr("Downloader"),
|
||||
tr("Redirect to %1 ?").arg(newUrl.toString()),
|
||||
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
|
||||
{
|
||||
url = newUrl;
|
||||
reply->deleteLater();
|
||||
file->open(QIODevice::WriteOnly);
|
||||
file->resize(0);
|
||||
startRequest(url);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->statusLabel->setText(tr("Download was successful. Press 'Next' to continue."));
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->continueButton->setEnabled(true);
|
||||
ui->continueButton->setDefault(true);
|
||||
ui->quitButton->setDefault(false);
|
||||
}
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
reply = 0;
|
||||
delete file;
|
||||
file = 0;
|
||||
manager = 0;
|
||||
downloadFinished = true;
|
||||
|
||||
if (autoDownload)
|
||||
{
|
||||
if (ui->continueButton->isEnabled())
|
||||
{
|
||||
on_continueButton_clicked();
|
||||
}
|
||||
else
|
||||
{
|
||||
on_quitButton_clicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Downloader::on_urlEdit_returnPressed()
|
||||
{
|
||||
on_downloadButton_clicked();
|
||||
}
|
||||
|
||||
void Downloader::enableDownloadButton()
|
||||
{
|
||||
ui->downloadButton->setEnabled(!(ui->urlEdit->text()).isEmpty());
|
||||
}
|
||||
|
||||
void Downloader::httpReadyRead()
|
||||
{
|
||||
// this slot gets called every time the QNetworkReply has new data.
|
||||
// We read all of its new data and write it into the file.
|
||||
// That way we use less RAM than when reading it at the finished()
|
||||
// signal of the QNetworkReply
|
||||
if (file)
|
||||
file->write(reply->readAll());
|
||||
}
|
||||
|
||||
void Downloader::updateDownloadProgress(qint64 bytesRead, qint64 totalBytes)
|
||||
{
|
||||
if (httpRequestAborted)
|
||||
return;
|
||||
|
||||
ui->progressBar->setMaximum(totalBytes);
|
||||
ui->progressBar->setValue(bytesRead);
|
||||
}
|
||||
|
||||
// This is called during the download to check for a hung state
|
||||
void Downloader::timerCheckDownloadProgress()
|
||||
{
|
||||
if (ui->progressBar->value() > downloadProgress)
|
||||
{
|
||||
downloadProgress = ui->progressBar->value();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!downloadFinished)
|
||||
{
|
||||
// We appear to be hung.
|
||||
cancelDownload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This is called when the URL is already pre-defined (overloaded)
|
||||
void Downloader::setUrl(std::string source)
|
||||
{
|
||||
QUrl u;
|
||||
u.setUrl(QString::fromStdString(source));
|
||||
setUrl(u);
|
||||
}
|
||||
|
||||
// This is called when the URL is already pre-defined
|
||||
void Downloader::setUrl(QUrl source)
|
||||
{
|
||||
url = source;
|
||||
|
||||
ui->urlEdit->setText(url.url());
|
||||
ui->urlEdit->setEnabled(false);
|
||||
}
|
||||
|
||||
// This is called when the Destination is already pre-defined (overloaded)
|
||||
void Downloader::setDest(std::string dest)
|
||||
{
|
||||
QString d = QString::fromStdString(dest);
|
||||
setDest(d);
|
||||
}
|
||||
|
||||
// This is called when the Destination is already pre-defined
|
||||
void Downloader::setDest(QString dest)
|
||||
{
|
||||
fileDest = QFileInfo(dest);
|
||||
|
||||
if (fileDest.exists())
|
||||
{
|
||||
ui->statusLabel->setText(tr("The file \"%1\" already exists.\n\nPress 'Next' to continue with this file, or 'Download' to get a new one.").arg(fileDest.filePath()));
|
||||
ui->continueButton->setEnabled(true);
|
||||
ui->progressBar->setMaximum(100);
|
||||
ui->progressBar->setValue(100);
|
||||
downloadFinished = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->statusLabel->setText(tr("Press 'Download' or 'Next' to begin."));
|
||||
ui->continueButton->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
void Downloader::reloadBlockchain()
|
||||
{
|
||||
ui->statusLabel->setText(tr("Please wait...."));
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(false);
|
||||
ui->downloadButton->setDefault(false);
|
||||
ui->continueButton->setDefault(false);
|
||||
ui->quitButton->setDefault(true);
|
||||
this->raise();
|
||||
|
||||
ui->progressBarLabel->setText(tr("Extracting:"));
|
||||
ui->progressBar->setValue(0);
|
||||
|
||||
if (boost::filesystem::exists(fileDest.filePath().toStdString()))
|
||||
{
|
||||
printf("Preparing for Blockchain Reload...\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Download failed!\n");
|
||||
ui->statusLabel->setText(tr("An error ocurred. The bootstrap file could not be found. Please try to download it again."));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(true);
|
||||
ui->continueButton->setDefault(false);
|
||||
ui->quitButton->setDefault(false);
|
||||
downloadFinished = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Test the archive.
|
||||
QStringList zlist = JlCompress::getFileList(fileDest.filePath(), 1);
|
||||
if (!zlist.isEmpty() && zlist[0].contains("blocks/"))
|
||||
{
|
||||
printf("Bootstrap structure is valid.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Bootstrap structure is invalid!\n");
|
||||
ui->statusLabel->setText(tr("I'm sorry, the bootstrap file structure appears to be invalid. Please try to download it again."));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(false);
|
||||
ui->continueButton->setDefault(false);
|
||||
ui->quitButton->setDefault(true);
|
||||
downloadFinished = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Extract bootstrap.zip
|
||||
QStringList zextracted = JlCompress::extractDir(fileDest.filePath(), fileDest.path(), ui->progressBar);
|
||||
|
||||
if (!zextracted.isEmpty())
|
||||
{
|
||||
printf("Bootstrap extract successful.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Bootstrap extract failed!\n");
|
||||
ui->statusLabel->setText(tr("I'm sorry, the bootstrap extract failed."));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(false);
|
||||
ui->continueButton->setDefault(false);
|
||||
ui->quitButton->setDefault(true);
|
||||
downloadFinished = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!boost::filesystem::exists(GetDataDir() / "bootstrap" / "blocks" / "blk00000.dat") ||
|
||||
!boost::filesystem::exists(GetDataDir() / "bootstrap" / "blocks" / "index") ||
|
||||
!boost::filesystem::exists(GetDataDir() / "bootstrap" / "chainstate"))
|
||||
{
|
||||
printf("Bootstrap extract is invalid!\n");
|
||||
ui->statusLabel->setText(tr("I'm sorry, the bootstrap extract was successful, but the contents are invalid."));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
ui->downloadButton->setDefault(false);
|
||||
ui->continueButton->setDefault(false);
|
||||
ui->quitButton->setDefault(true);
|
||||
downloadFinished = false;
|
||||
return;
|
||||
}
|
||||
/** Below code is to load a bootstrap file by reading and loading every single block into a new block db
|
||||
else
|
||||
{
|
||||
// Bootstrap is created succesfully, now start importing the blockchain from disk
|
||||
boost::filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
||||
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
|
||||
if (file) {
|
||||
ui->progressBarLabel->setText(tr("Complete:"));
|
||||
ui->statusLabel->setText(tr("Congratulations, the bootstrap extract was successful! "
|
||||
"Your wallet will now start and load the blockchain from disk. "
|
||||
"This may still take a while, new transactions will not be visible until the wallet is synchronized with the network ..."));
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(false);
|
||||
this->raise();
|
||||
this->repaint();
|
||||
MilliSleep(5 * 1000);
|
||||
downloadFinished = true;
|
||||
this->close();
|
||||
return;
|
||||
} else
|
||||
{
|
||||
ui->progressBarLabel->setText(tr("Error:"));
|
||||
ui->statusLabel->setText(tr("The extracted bootstrap.dat file cannot be found. Please try again."));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(true);
|
||||
this->raise();
|
||||
this->repaint();
|
||||
downloadFinished = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
*/
|
||||
// download and extract of block chain files is complete, close dialog and restart wallet
|
||||
ui->progressBarLabel->setText(tr("Complete:"));
|
||||
ui->statusLabel->setText(tr("Congratulations, the bootstrap extract was successful! Your wallet will restart to complete the operation"));
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->continueButton->setEnabled(false);
|
||||
ui->quitButton->setEnabled(false);
|
||||
this->raise();
|
||||
this->repaint();
|
||||
downloadFinished = true;
|
||||
MilliSleep(5 * 1000);
|
||||
this->close();
|
||||
return;
|
||||
}
|
||||
87
src/qt/downloader.h
Executable file
87
src/qt/downloader.h
Executable file
@@ -0,0 +1,87 @@
|
||||
#ifndef DOWNLOADER_H
|
||||
#define DOWNLOADER_H
|
||||
|
||||
#include "walletmodel.h"
|
||||
#include <QDialog>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QUrl>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QMessageBox>
|
||||
#include <QTimer>
|
||||
|
||||
class JlCompress;
|
||||
|
||||
namespace Ui {
|
||||
class Downloader;
|
||||
}
|
||||
|
||||
class Downloader : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Downloader(QWidget *parent = 0, WalletModel *walletModel = 0);
|
||||
~Downloader();
|
||||
|
||||
private:
|
||||
void showEvent(QShowEvent *e);
|
||||
WalletModel *walletModel;
|
||||
void startRequest(QUrl url);
|
||||
Ui::Downloader *ui;
|
||||
QUrl url;
|
||||
QFileInfo fileDest;
|
||||
QNetworkAccessManager *manager;
|
||||
QNetworkReply *reply;
|
||||
QTimer *downloadTimer;
|
||||
QFile *file;
|
||||
qint64 downloadProgress;
|
||||
qint64 fileSize;
|
||||
|
||||
public:
|
||||
void setUrl(QUrl source);
|
||||
void setUrl(std::string source); // overload
|
||||
void setDest(QString dest);
|
||||
void setDest(std::string dest); // overload
|
||||
|
||||
// These will be set true when Cancel/Continue/Quit pressed
|
||||
bool httpRequestAborted;
|
||||
bool downloaderQuit;
|
||||
bool downloadFinished;
|
||||
|
||||
// These are set by the class creating the Downloader object
|
||||
bool autoDownload;
|
||||
bool processBlockchain;
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
||||
private slots:
|
||||
void on_downloadButton_clicked();
|
||||
|
||||
void on_quitButton_clicked();
|
||||
|
||||
void on_continueButton_clicked();
|
||||
|
||||
void on_urlEdit_returnPressed();
|
||||
|
||||
// slot for readyRead() signal
|
||||
void httpReadyRead();
|
||||
|
||||
// slot for finished() signal from reply
|
||||
void downloaderFinished();
|
||||
|
||||
// slot for downloadProgress()
|
||||
void updateDownloadProgress(qint64, qint64);
|
||||
void timerCheckDownloadProgress();
|
||||
|
||||
void enableDownloadButton();
|
||||
void networkError();
|
||||
void cancelDownload();
|
||||
void reloadBlockchain();
|
||||
};
|
||||
|
||||
#endif // DOWNLOADER_H
|
||||
@@ -6,15 +6,53 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>993</width>
|
||||
<width>760</width>
|
||||
<height>380</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Address Book</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="labelExplanation">
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableView" name="tableView">
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Double-click to edit address or label</string>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="newAddress">
|
||||
@@ -115,17 +153,6 @@
|
||||
<property name="toolTip">
|
||||
<string>Export the data in the current tab to a file</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(170, 28, 33);
|
||||
color: rgb(255, 255, 255);
|
||||
pressed
|
||||
{
|
||||
background-color: rgb(166, 27, 31);
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Export</string>
|
||||
</property>
|
||||
@@ -133,12 +160,6 @@ background-color: rgb(166, 27, 31);
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/export</normaloff>:/icons/export</iconset>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -156,59 +177,6 @@ background-color: rgb(166, 27, 31);
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QTableView" name="tableView">
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Double-click to edit address or label</string>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="labelExplanation">
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
|
||||
195
src/qt/forms/downloader.ui
Normal file
195
src/qt/forms/downloader.ui
Normal file
@@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Downloader</class>
|
||||
<widget class="QDialog" name="Downloader">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>460</width>
|
||||
<height>240</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Downloader</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="urlLabel">
|
||||
<property name="text">
|
||||
<string>Url:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="urlEdit">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetFixedSize</enum>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="downloadButton">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="continueButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Next</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="quitButton">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QLabel" name="statusLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetFixedSize</enum>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>8</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>8</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="progressBarLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -1,550 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>InfoPage</class>
|
||||
<widget class="QDialog" name="InfoPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>480</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>800</width>
|
||||
<height>480</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QFrame" name="exchangeInfoBox">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="1" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayoutExchanges"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblExchangesHeader">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Exchanges</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QFrame" name="coinInfoBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblInformationHeader">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Information</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QFormLayout" name="formCoinDetails">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>15</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblBlockHeight">
|
||||
<property name="font">
|
||||
<font>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Current number of blocks</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::AutoText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="txtBlockHeight">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lblLastBlockTime">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Last block time</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="txtLastBlockTime">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lblCoinSupply">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Coin Supply</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="txtCoinSupply">
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lblConnections">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Number of connections</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="txtConnections">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lblDifficulty">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Difficulty</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="txtDifficulty">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="lblHashRate">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Network Hashrate</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="txtHashRate">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="lblTransactionCount">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Transactions</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLabel" name="txtTransactionCount">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -16,14 +16,14 @@
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="tabPosition">
|
||||
<enum>QTabWidget::North</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabMain">
|
||||
<attribute name="title">
|
||||
@@ -31,63 +31,59 @@
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_Main">
|
||||
<item>
|
||||
<widget class="QFrame" name="verticalFrame1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="transactionFeeInfoLabel">
|
||||
<property name="text">
|
||||
<string>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB.</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QLabel" name="transactionFeeInfoLabel">
|
||||
<property name="text">
|
||||
<string>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB.</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frameTransactionFee">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_1_Main">
|
||||
<item>
|
||||
<widget class="QLabel" name="transactionFeeLabel">
|
||||
<property name="text">
|
||||
<string>Pay transaction &fee</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>transactionFee</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="BitcoinAmountField" name="transactionFee"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_1_Main">
|
||||
<item>
|
||||
<widget class="QLabel" name="transactionFeeLabel">
|
||||
<property name="text">
|
||||
<string>Pay transaction &fee</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>transactionFee</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="BitcoinAmountField" name="transactionFee"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_1_Main">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="verticalFrame2">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="bitcoinAtStartup">
|
||||
<property name="toolTip">
|
||||
<string>Automatically start CasinoCoin after logging in to the system.</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Start CasinoCoin on system login</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QCheckBox" name="bitcoinAtStartup">
|
||||
<property name="toolTip">
|
||||
<string>Automatically start CasinoCoin after logging in to the system.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Start CasinoCoin on system login</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -104,36 +100,34 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frameResetOptions">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2_Main">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2_Main">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="resetButton">
|
||||
<property name="toolTip">
|
||||
<string>Reset all client options to default.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Reset Options</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2_Main">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2_Main">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="resetButton">
|
||||
<property name="toolTip">
|
||||
<string>Reset all client options to default.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Reset Options</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@@ -143,122 +137,114 @@
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_Network">
|
||||
<item>
|
||||
<widget class="QFrame" name="verticalFrame3">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="connectSocks">
|
||||
<property name="toolTip">
|
||||
<string>Connect to the CasinoCoin network through a SOCKS proxy (e.g. when connecting through Tor).</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Connect through SOCKS proxy:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="mapPortUpnp">
|
||||
<property name="toolTip">
|
||||
<string>Automatically open the CasinoCoin client port on the router. This only works when your router supports UPnP and it is enabled.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Map port using &UPnP</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QCheckBox" name="mapPortUpnp">
|
||||
<property name="toolTip">
|
||||
<string>Automatically open the CasinoCoin client port on the router. This only works when your router supports UPnP and it is enabled.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Map port using &UPnP</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="proxyIpLabel">
|
||||
<property name="text">
|
||||
<string>Proxy &IP:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>proxyIp</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="proxyPortLabel">
|
||||
<property name="text">
|
||||
<string>&Port:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>proxyPort</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="socksVersionLabel">
|
||||
<property name="text">
|
||||
<string>SOCKS &Version:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>socksVersion</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<spacer name="horizontalSpacer_Network">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QValueComboBox" name="socksVersion">
|
||||
<property name="toolTip">
|
||||
<string>SOCKS version of the proxy (e.g. 5)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QValidatedLineEdit" name="proxyIp">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>IP address of the proxy (e.g. 127.0.0.1)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="proxyPort">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Port of the proxy (e.g. 9050)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QCheckBox" name="connectSocks">
|
||||
<property name="toolTip">
|
||||
<string>Connect to the CasinoCoin network through a SOCKS proxy (e.g. when connecting through Tor).</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Connect through SOCKS proxy:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_Network">
|
||||
<item>
|
||||
<widget class="QLabel" name="proxyIpLabel">
|
||||
<property name="text">
|
||||
<string>Proxy &IP:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>proxyIp</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValidatedLineEdit" name="proxyIp">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>IP address of the proxy (e.g. 127.0.0.1)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="proxyPortLabel">
|
||||
<property name="text">
|
||||
<string>&Port:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>proxyPort</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="proxyPort">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>55</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Port of the proxy (e.g. 9050)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="socksVersionLabel">
|
||||
<property name="text">
|
||||
<string>SOCKS &Version:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>socksVersion</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="socksVersion">
|
||||
<property name="toolTip">
|
||||
<string>SOCKS version of the proxy (e.g. 5)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_Network">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_Network">
|
||||
<property name="orientation">
|
||||
@@ -280,29 +266,23 @@
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_Window">
|
||||
<item>
|
||||
<widget class="QFrame" name="verticalFrame4">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeToTray">
|
||||
<property name="toolTip">
|
||||
<string>Show only a tray icon after minimizing the window.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Minimize to the tray instead of the taskbar</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeOnClose">
|
||||
<property name="toolTip">
|
||||
<string>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>M&inimize on close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QCheckBox" name="minimizeToTray">
|
||||
<property name="toolTip">
|
||||
<string>Show only a tray icon after minimizing the window.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Minimize to the tray instead of the taskbar</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeOnClose">
|
||||
<property name="toolTip">
|
||||
<string>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>M&inimize on close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -324,222 +304,186 @@
|
||||
<attribute name="title">
|
||||
<string>&Display</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QFrame" name="verticalFrame5">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_display_Language">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMaximumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="langLabel">
|
||||
<property name="text">
|
||||
<string>User Interface &language:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lang</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="lang">
|
||||
<property name="toolTip">
|
||||
<string>The user interface language can be set here. This setting will take effect after restarting CasinoCoin.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_display_Units">
|
||||
<item>
|
||||
<widget class="QLabel" name="unitLabel">
|
||||
<property name="text">
|
||||
<string>&Unit to show amounts in:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>unit</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="unit">
|
||||
<property name="toolTip">
|
||||
<string>Choose the default subdivision unit to show in the interface and when sending coins.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_display_Currency">
|
||||
<item>
|
||||
<widget class="QLabel" name="currencyLabel">
|
||||
<property name="text">
|
||||
<string>Currency to show amounts in:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="currency">
|
||||
<property name="toolTip">
|
||||
<string>Choose the default currency in which to show your total coin value.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_Display">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_1_Display">
|
||||
<item>
|
||||
<widget class="QLabel" name="langLabel">
|
||||
<property name="text">
|
||||
<string>User Interface &language:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lang</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="lang">
|
||||
<property name="toolTip">
|
||||
<string>The user interface language can be set here. This setting will take effect after restarting CasinoCoin.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2_Display">
|
||||
<item>
|
||||
<widget class="QLabel" name="unitLabel">
|
||||
<property name="text">
|
||||
<string>&Unit to show amounts in:</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>unit</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QValueComboBox" name="unit">
|
||||
<property name="toolTip">
|
||||
<string>Choose the default subdivision unit to show in the interface and when sending coins.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="displayAddresses">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show CasinoCoin addresses in the transaction list or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Display addresses in transaction list</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QFrame" name="verticalFrame6">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="displayAddresses">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show CasinoCoin addresses in the transaction list or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Display addresses in transaction list</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="coinControlFeatures">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show coin control features or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Display coin &control features (experts only!)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="displayPromotions">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show casino promotions on the overview page or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Display casino promotions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="coinControlFeatures">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show coin control features or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Display coin &control features (experts only!)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_Display">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QFrame" name="frameButtonBar">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_Buttons">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="statusLabel">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="text">
|
||||
<string>&OK</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="applyButton">
|
||||
<property name="text">
|
||||
<string>&Apply</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_Buttons">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="statusLabel">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::PlainText</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="text">
|
||||
<string>&OK</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="applyButton">
|
||||
<property name="text">
|
||||
<string>&Apply</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>QValidatedLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qvalidatedlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>BitcoinAmountField</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>bitcoinamountfield.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QValueComboBox</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>qvaluecombobox.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QValidatedLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qvalidatedlineedit.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>805</width>
|
||||
<height>550</height>
|
||||
<width>573</width>
|
||||
<height>342</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -31,33 +31,64 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>470</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>470</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<property name="topMargin">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Wallet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelWalletStatus">
|
||||
<property name="toolTip">
|
||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the CasinoCoin network after a connection is established, but this process has not completed yet.</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel { color: red; }</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">(out of sync)</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<property name="fieldGrowthPolicy">
|
||||
@@ -69,68 +100,17 @@
|
||||
<property name="verticalSpacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Wallet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelWalletStatus">
|
||||
<property name="toolTip">
|
||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the CasinoCoin network after a connection is established, but this process has not completed yet.</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">(out of sync)</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelBalanceText">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Balance:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="labelBalance">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
@@ -144,22 +124,19 @@
|
||||
<property name="text">
|
||||
<string notr="true">0 CSC</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labelUnconfirmedText">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Unconfirmed:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="labelUnconfirmed">
|
||||
<property name="font">
|
||||
<font>
|
||||
@@ -176,22 +153,19 @@
|
||||
<property name="text">
|
||||
<string notr="true">0 CSC</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labelImmatureText">
|
||||
<property name="text">
|
||||
<string>Immature:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="labelImmature">
|
||||
<property name="font">
|
||||
<font>
|
||||
@@ -205,100 +179,86 @@
|
||||
<property name="text">
|
||||
<string notr="true">0 CSC</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="labelBalanceFiatText">
|
||||
<property name="text">
|
||||
<string>Estimated Fiat Balance:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="labelBalanceFiat">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Estimated Fiat balance calculated against current market value</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutAdvertWidget"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../bitcoin.qrc">:/images/backg</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>-2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
<widget class="QFrame" name="frame_2">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="topMargin">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><b>Recent transactions</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelTransactionsStatus">
|
||||
<property name="toolTip">
|
||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the CasinoCoin network after a connection is established, but this process has not completed yet.</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel { color: red; }</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">(out of sync)</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
@@ -312,22 +272,6 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelTransactionsStatus">
|
||||
<property name="toolTip">
|
||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the CasinoCoin network after a connection is established, but this process has not completed yet.</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(166, 27, 31);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">(out of sync)</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@@ -352,6 +296,19 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PryptoPage</class>
|
||||
<widget class="QDialog" name="PryptoPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>507</width>
|
||||
<height>282</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>481</width>
|
||||
<height>261</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="leftMargin">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lblHelp">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>80</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enter your Prypto Code and Security Code to redeem your Prypto card.</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::AutoText</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lblPryptoCode">
|
||||
<property name="text">
|
||||
<string>Prypto Code</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="txtPryptoCode"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lblSecurityCode">
|
||||
<property name="text">
|
||||
<string>Security Code</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="txtSecurityCode">
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhDigitsOnly</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="butRedeem">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(166, 27, 31);
|
||||
color: rgb(255, 255, 255);
|
||||
pressed
|
||||
{
|
||||
background-color: rgb(166, 27, 31);
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Redeem</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/res/icons/prypto.png</normaloff>:/icons/res/icons/prypto.png</iconset>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../bitcoin.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>740</width>
|
||||
<height>468</height>
|
||||
<height>450</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -17,7 +17,7 @@
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_info">
|
||||
<attribute name="title">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<property name="windowTitle">
|
||||
<string>Send Coins</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
|
||||
<property name="bottomMargin">
|
||||
<number>8</number>
|
||||
</property>
|
||||
@@ -39,7 +39,7 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayoutCoinControl2">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
@@ -84,7 +84,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color:rgb(166,27,31);font-weight:bold;</string>
|
||||
<string notr="true">font-weight:bold;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Coin Control Features</string>
|
||||
@@ -130,7 +130,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color:rgb(166,27,31);font-weight:bold;</string>
|
||||
<string notr="true">color:red;font-weight:bold;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Insufficient funds!</string>
|
||||
@@ -173,16 +173,7 @@
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayoutCoinControl5">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
@@ -624,6 +615,48 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>830</width>
|
||||
<height>165</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="entries">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
@@ -669,19 +702,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
@@ -696,12 +716,6 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelBalance">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="cursor">
|
||||
<cursorShape>IBeamCursor</cursorShape>
|
||||
</property>
|
||||
@@ -715,6 +729,19 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="sendButton">
|
||||
<property name="minimumSize">
|
||||
@@ -726,17 +753,6 @@
|
||||
<property name="toolTip">
|
||||
<string>Confirm the send action</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(166, 27, 31);
|
||||
color: rgb(255, 255, 255);
|
||||
pressed
|
||||
{
|
||||
background-color: rgb(166, 27, 31);
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>S&end</string>
|
||||
</property>
|
||||
@@ -751,77 +767,6 @@ background-color: rgb(166, 27, 31);
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>832</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QFrame" name="entries_2">
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="entries">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
|
||||
@@ -49,6 +49,9 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="BitcoinAmountField" name="payAmount"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
@@ -77,45 +80,8 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QValidatedLineEdit" name="addAsLabel">
|
||||
<property name="toolTip">
|
||||
<string>Enter a label for this address to add it to your address book</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="deleteButton">
|
||||
<property name="toolTip">
|
||||
<string>Remove this recipient</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="addressBookButton">
|
||||
<widget class="QToolButton" name="addressBookButton">
|
||||
<property name="toolTip">
|
||||
<string>Choose address from address book</string>
|
||||
</property>
|
||||
@@ -126,25 +92,13 @@
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+A</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pasteButton">
|
||||
<widget class="QToolButton" name="pasteButton">
|
||||
<property name="toolTip">
|
||||
<string>Paste address from clipboard</string>
|
||||
</property>
|
||||
@@ -155,49 +109,48 @@
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+P</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="deleteButton">
|
||||
<property name="toolTip">
|
||||
<string>Remove this recipient</string>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../bitcoin.qrc">
|
||||
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="2">
|
||||
<widget class="BitcoinAmountField" name="payAmount">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<item row="4" column="1">
|
||||
<widget class="QValidatedLineEdit" name="addAsLabel">
|
||||
<property name="toolTip">
|
||||
<string>Enter a label for this address to add it to your address book</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>BitcoinAmountField</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>bitcoinamountfield.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QValidatedLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qvalidatedlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>BitcoinAmountField</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>bitcoinamountfield.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../bitcoin.qrc"/>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabSignMessage">
|
||||
<attribute name="title">
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
#include "gui20_skin.h"
|
||||
|
||||
|
||||
GUI20Skin::GUI20Skin( QObject* a_pParent )
|
||||
: QObject( a_pParent )
|
||||
, colorToolbarMainGradientBegin( "#9c181c" )
|
||||
// , colorToolbarMainGradientEnd( "#ae1e22" )
|
||||
, colorToolbarMainGradientEnd( "#a61b22" )
|
||||
, colorToolbarMainCurrent( "#761316" )
|
||||
, colorToolbarMainBottomCurrent( "#e1252b" )
|
||||
, colorToolbarMainTextCurrent( "#ffffff" )
|
||||
, colorToolbarMainTextNormal( "#3f0a0c" )
|
||||
, colorToolbarMainTextWebsiteURL( colorToolbarMainTextCurrent )
|
||||
, colorToolbarMainTextVisitWebsite( "#ffffaf" )
|
||||
, colorToolbarMainTextShadow( "#c72427" )
|
||||
, colorWindowBackground( "#f0f0f0" )
|
||||
, colorFrameBackground( "#ffffff" )
|
||||
, colorButtonTopGradient( colorFrameBackground )
|
||||
, colorButtonBottomGradient( "#F2F2F2" )
|
||||
, colorButtonMid( "#F8F8F8" )
|
||||
, colorButtonDark( colorButtonBottomGradient )
|
||||
, colorButtonLight( colorFrameBackground )
|
||||
, colorListCurrent( "#F5E5E5" )
|
||||
, colorListValue( colorFrameBackground )
|
||||
, colorListValueAlternative( "#F5F5F5" )
|
||||
, colorTextActive( "#404040" )
|
||||
, colorTextActiveAutocomplete( "#6B3D3D" )
|
||||
, colorTextDisabled( "#707070" )
|
||||
, colorTextDisabledAutocomplete( "#8B5D5D" )
|
||||
, colorTextBlack("#000000")
|
||||
{
|
||||
}
|
||||
|
||||
GUI20Skin& GUI20Skin::Instance()
|
||||
{
|
||||
static GUI20Skin m_oInstance;
|
||||
return m_oInstance;
|
||||
}
|
||||
|
||||
GUI20Skin::~GUI20Skin()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
#ifndef GUI20_SKIN_H
|
||||
#define GUI20_SKIN_H
|
||||
|
||||
#include <QColor>
|
||||
#include <QString>
|
||||
|
||||
#include <QMutex>
|
||||
#include <QObject>
|
||||
|
||||
class GUI20Skin : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY( QColor colorToolbarMainGradientBegin READ GetColorToolbarMainGradientBegin CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainGradientEnd READ GetColorToolbarMainGradientEnd CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainCurrent READ GetColorToolbarMainCurrent CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorToolbarMainBottomCurrent READ GetColorToolbarBottomCurrent CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorToolbarMainTextCurrent READ GetColorToolbarMainTextCurrent CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainTextNormal READ GetColorToolbarMainTextNormal CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainTextShadow READ GetColorToolbarMainTextShadow CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainTextWebsiteURL READ GetColorToolbarMainTextWebsiteURL CONSTANT )
|
||||
Q_PROPERTY( QColor colorToolbarMainTextVisitWebsite READ GetColorToolbarMainTextVisitWebsite CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorWindowBackground READ GetColorWindowBackground CONSTANT )
|
||||
Q_PROPERTY( QColor colorFrameBackground READ GetColorFrameBackground CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorButtonTopGradient READ GetColorButtonTopGradient CONSTANT )
|
||||
Q_PROPERTY( QColor colorButtonBottomGradient READ GetColorButtonBottomGradient CONSTANT )
|
||||
Q_PROPERTY( QColor colorButtonMid READ GetColorButtonMid CONSTANT )
|
||||
Q_PROPERTY( QColor colorButtonDark READ GetColorButtonDark CONSTANT )
|
||||
Q_PROPERTY( QColor colorButtonLight READ GetColorButtonLight CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorListCurrent READ GetColorListCurrent CONSTANT )
|
||||
Q_PROPERTY( QColor colorListValue READ GetColorListValue CONSTANT )
|
||||
Q_PROPERTY( QColor colorListValueAlternative READ GetColorListValueAlternative CONSTANT )
|
||||
|
||||
Q_PROPERTY( QColor colorTextActive READ GetColorTextActive CONSTANT )
|
||||
Q_PROPERTY( QColor colorTextActiveAutocomplete READ GetColorTextActiveAutocomplete CONSTANT )
|
||||
Q_PROPERTY( QColor colorTextDisabled READ GetColorTextDisabled CONSTANT )
|
||||
Q_PROPERTY( QColor colorTextDisabledAutocomplete READ GetColorTextDisabledAutocomplete CONSTANT )
|
||||
|
||||
Q_ENUMS( ESizeConstants )
|
||||
|
||||
public:
|
||||
|
||||
enum ESizeConstants
|
||||
{
|
||||
ToolbarMainHeight = 77,
|
||||
ToolbarMainBottomPartHeight = 5
|
||||
};
|
||||
|
||||
const QColor GetColorToolbarMainGradientBegin() const {return colorToolbarMainGradientBegin;}
|
||||
const QColor GetColorToolbarMainGradientEnd() const {return colorToolbarMainGradientEnd;}
|
||||
const QColor GetColorToolbarMainCurrent() const {return colorToolbarMainCurrent;}
|
||||
|
||||
const QColor GetColorToolbarBottomCurrent() const {return colorToolbarMainBottomCurrent;}
|
||||
|
||||
const QColor GetColorToolbarMainTextCurrent() const {return colorToolbarMainTextCurrent;}
|
||||
const QColor GetColorToolbarMainTextNormal() const {return colorToolbarMainTextNormal;}
|
||||
const QColor GetColorToolbarMainTextShadow() const {return colorToolbarMainTextShadow;}
|
||||
const QColor GetColorToolbarMainTextWebsiteURL() const {return colorToolbarMainTextWebsiteURL;}
|
||||
const QColor GetColorToolbarMainTextVisitWebsite() const {return colorToolbarMainTextVisitWebsite;}
|
||||
|
||||
const QColor GetColorWindowBackground() const {return colorWindowBackground;}
|
||||
const QColor GetColorFrameBackground() const {return colorFrameBackground;}
|
||||
|
||||
const QColor GetColorButtonTopGradient() const {return colorButtonTopGradient;}
|
||||
const QColor GetColorButtonBottomGradient() const {return colorButtonBottomGradient;}
|
||||
const QColor GetColorButtonMid() const {return colorButtonMid;}
|
||||
const QColor GetColorButtonDark() const {return colorButtonDark;}
|
||||
const QColor GetColorButtonLight() const {return colorButtonLight;}
|
||||
|
||||
const QColor GetColorListCurrent() const {return colorListCurrent;}
|
||||
const QColor GetColorListValue() const {return colorListValue;}
|
||||
const QColor GetColorListValueAlternative() const {return colorListValueAlternative;}
|
||||
|
||||
const QColor GetColorTextActive() const {return colorTextActive;}
|
||||
const QColor GetColorTextActiveAutocomplete() const {return colorTextActiveAutocomplete;}
|
||||
const QColor GetColorTextDisabled() const {return colorTextDisabled;}
|
||||
const QColor GetColorTextDisabledAutocomplete() const {return colorTextDisabledAutocomplete;}
|
||||
|
||||
private:
|
||||
const QColor colorToolbarMainGradientBegin;
|
||||
const QColor colorToolbarMainGradientEnd;
|
||||
const QColor colorToolbarMainCurrent;
|
||||
|
||||
const QColor colorToolbarMainBottomCurrent;
|
||||
|
||||
const QColor colorToolbarMainTextCurrent;
|
||||
const QColor colorToolbarMainTextNormal;
|
||||
const QColor colorToolbarMainTextShadow;
|
||||
const QColor colorToolbarMainTextWebsiteURL;
|
||||
const QColor colorToolbarMainTextVisitWebsite;
|
||||
|
||||
const QColor colorWindowBackground;
|
||||
const QColor colorFrameBackground;
|
||||
|
||||
const QColor colorButtonTopGradient;
|
||||
const QColor colorButtonBottomGradient;
|
||||
const QColor colorButtonMid;
|
||||
const QColor colorButtonDark;
|
||||
const QColor colorButtonLight;
|
||||
|
||||
const QColor colorListCurrent;
|
||||
const QColor colorListValue;
|
||||
const QColor colorListValueAlternative;
|
||||
|
||||
const QColor colorTextActive;
|
||||
const QColor colorTextActiveAutocomplete;
|
||||
const QColor colorTextDisabled;
|
||||
const QColor colorTextDisabledAutocomplete;
|
||||
|
||||
const QColor colorTextBlack;
|
||||
|
||||
public:
|
||||
static GUI20Skin& Instance();
|
||||
private:
|
||||
GUI20Skin( QObject* a_pParent = 0 );
|
||||
virtual ~GUI20Skin();
|
||||
|
||||
};
|
||||
#endif // GUI20_SKIN_H
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define GUICONSTANTS_H
|
||||
|
||||
/* Milliseconds between model updates */
|
||||
static const int MODEL_UPDATE_DELAY = 1000;
|
||||
static const int MODEL_UPDATE_DELAY = 250;
|
||||
|
||||
/* AskPassphraseDialog -- Maximum passphrase length */
|
||||
static const int MAX_PASSPHRASE_SIZE = 1024;
|
||||
@@ -16,9 +16,7 @@ static const int STATUSBAR_ICONSIZE = 16;
|
||||
/* Transaction list -- unconfirmed transaction */
|
||||
#define COLOR_UNCONFIRMED QColor(128, 128, 128)
|
||||
/* Transaction list -- negative amount */
|
||||
#define COLOR_NEGATIVE QColor(166, 27, 31)
|
||||
/* Transaction list -- positive amount */
|
||||
#define COLOR_POSITIVE QColor(27, 166, 31)
|
||||
#define COLOR_NEGATIVE QColor(255, 0, 0)
|
||||
/* Transaction list -- bare address (without label) */
|
||||
#define COLOR_BAREADDRESS QColor(140, 140, 140)
|
||||
|
||||
|
||||
@@ -28,6 +28,11 @@
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/filesystem/fstream.hpp>
|
||||
|
||||
#if BOOST_FILESYSTEM_VERSION >= 3
|
||||
#include <boost/filesystem/detail/utf8_codecvt_facet.hpp>
|
||||
static boost::filesystem::detail::utf8_codecvt_facet utf8;
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
@@ -532,4 +537,27 @@ void HelpMessageBox::showOrPrint()
|
||||
#endif
|
||||
}
|
||||
|
||||
#if BOOST_FILESYSTEM_VERSION >= 3
|
||||
boost::filesystem::path qstringToBoostPath(const QString &path)
|
||||
{
|
||||
return boost::filesystem::path(path.toStdString(), utf8);
|
||||
}
|
||||
|
||||
QString boostPathToQString(const boost::filesystem::path &path)
|
||||
{
|
||||
return QString::fromStdString(path.string(utf8));
|
||||
}
|
||||
#else
|
||||
#warning Conversion between boost path and QString can use invalid character encoding with boost_filesystem v2 and older
|
||||
boost::filesystem::path qstringToBoostPath(const QString &path)
|
||||
{
|
||||
return boost::filesystem::path(path.toStdString());
|
||||
}
|
||||
|
||||
QString boostPathToQString(const boost::filesystem::path &path)
|
||||
{
|
||||
return QString::fromStdString(path.string());
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <QString>
|
||||
#include <QObject>
|
||||
#include <QMessageBox>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
class SendCoinsRecipient;
|
||||
|
||||
@@ -118,6 +119,15 @@ namespace GUIUtil
|
||||
QString uiOptions;
|
||||
};
|
||||
|
||||
#if BOOST_FILESYSTEM_VERSION >= 3
|
||||
boost::filesystem::path qstringToBoostPath(const QString &path);
|
||||
QString boostPathToQString(const boost::filesystem::path &path);
|
||||
#else
|
||||
#warning Conversion between boost path and QString can use invalid character encoding with boost_filesystem v2 and older
|
||||
boost::filesystem::path qstringToBoostPath(const QString &path);
|
||||
QString boostPathToQString(const boost::filesystem::path &path);
|
||||
#endif
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
||||
#endif // GUIUTIL_H
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
#include "infopage.h"
|
||||
#include "ui_infopage.h"
|
||||
#include "walletmodel.h"
|
||||
#include "clientmodel.h"
|
||||
#include "bitcoinrpc.h"
|
||||
#include <QDateTime>
|
||||
#include "bitcoinunits.h"
|
||||
#include "main.h"
|
||||
|
||||
#include "qtquick_controls/cpp/guiexchangeswidget.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
InfoPage::InfoPage(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::InfoPage),
|
||||
exchangesWidget( 0 )
|
||||
{
|
||||
ui->setupUi(this);
|
||||
// ui->casinoInfoBox->setVisible(false);
|
||||
// ui->newsItemsBox->setVisible(false);
|
||||
|
||||
createExchangesWidget();
|
||||
}
|
||||
|
||||
void InfoPage::setWalletModel(WalletModel *model)
|
||||
{
|
||||
this->walletModel = model;
|
||||
if(model)
|
||||
{
|
||||
// subscribe to transaction changes
|
||||
connect(model, SIGNAL(numTransactionsChanged(int)), this, SLOT(setNumTransactions(int)));
|
||||
setNumTransactions(model->getNumTransactions());
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPage::setClientModel(ClientModel *model)
|
||||
{
|
||||
this->clientModel = model;
|
||||
if(model)
|
||||
{
|
||||
// Subscribe to information, replies, messages, errors
|
||||
connect(model, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
|
||||
connect(model, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int)));
|
||||
setNumConnections(model->getNumConnections());
|
||||
setNumBlocks(model->getNumBlocks(), model->getNumBlocksOfPeers());
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPage::setNumConnections(int count)
|
||||
{
|
||||
ui->txtConnections->setText(QString::number(count));
|
||||
}
|
||||
|
||||
void InfoPage::setNumBlocks(int count, int countOfPeers)
|
||||
{
|
||||
ui->txtBlockHeight->setText(QString::number(count));
|
||||
// block height changed so update all possible values as well
|
||||
if(clientModel)
|
||||
{
|
||||
ui->txtLastBlockTime->setText(clientModel->getLastBlockDate().toString());
|
||||
ui->txtDifficulty->setText(QString::number(GetDifficulty()));
|
||||
ui->txtCoinSupply->setText(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, GetTotalCoinSupply(count, false)));
|
||||
double megaHash = GetNetworkHashRate(-1, count) / 1000000;
|
||||
ui->txtHashRate->setText(QString::number(megaHash,'f',0).append(" MHash/sec"));
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPage::setNumTransactions(int count)
|
||||
{
|
||||
ui->txtTransactionCount->setText(QString::number(count));
|
||||
}
|
||||
|
||||
double InfoPage::GetNetworkHashRate(int lookup, int height) {
|
||||
CBlockIndex *pb = pindexBest;
|
||||
|
||||
if (height >= 0 && height < nBestHeight)
|
||||
pb = FindBlockByHeight(height);
|
||||
|
||||
if (pb == NULL || !pb->nHeight)
|
||||
return 0;
|
||||
|
||||
// If lookup is -1, then use blocks since last difficulty change.
|
||||
if (lookup <= 0)
|
||||
lookup = pb->nHeight % 2016 + 1;
|
||||
|
||||
// If lookup is larger than chain, then set it to chain length.
|
||||
if (lookup > pb->nHeight)
|
||||
lookup = pb->nHeight;
|
||||
|
||||
CBlockIndex *pb0 = pb;
|
||||
int64 minTime = pb0->GetBlockTime();
|
||||
int64 maxTime = minTime;
|
||||
for (int i = 0; i < lookup; i++) {
|
||||
pb0 = pb0->pprev;
|
||||
int64 time = pb0->GetBlockTime();
|
||||
minTime = std::min(time, minTime);
|
||||
maxTime = std::max(time, maxTime);
|
||||
}
|
||||
|
||||
// In case there's a situation where minTime == maxTime, we don't want a divide by zero exception.
|
||||
if (minTime == maxTime)
|
||||
return 0;
|
||||
|
||||
uint256 workDiff = pb->nChainWork - pb0->nChainWork;
|
||||
int64 timeDiff = maxTime - minTime;
|
||||
double workDiffDouble = workDiff.getdouble();
|
||||
return workDiffDouble / timeDiff;
|
||||
}
|
||||
|
||||
InfoPage::~InfoPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void InfoPage::createExchangesWidget()
|
||||
{
|
||||
exchangesWidget = new GUIExchangesWidget( this );
|
||||
exchangesWidget->slotPopulateExchangesFromWeb();
|
||||
ui->verticalLayoutExchanges->addWidget( exchangesWidget->dockQmlToWidget() );
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
#ifndef INFOPAGE_H
|
||||
#define INFOPAGE_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
class WalletModel;
|
||||
class ClientModel;
|
||||
class GUIExchangesWidget;
|
||||
|
||||
namespace Ui {
|
||||
class InfoPage;
|
||||
}
|
||||
|
||||
class InfoPage : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public slots:
|
||||
/** Set number of connections shown in the UI */
|
||||
void setNumConnections(int count);
|
||||
/** Set number of blocks shown in the UI */
|
||||
void setNumBlocks(int count, int countOfPeers);
|
||||
/** Set number of transactions shown in the UI */
|
||||
void setNumTransactions(int count);
|
||||
|
||||
public:
|
||||
explicit InfoPage(QWidget *parent = 0);
|
||||
void setWalletModel(WalletModel *model);
|
||||
void setClientModel(ClientModel *model);
|
||||
~InfoPage();
|
||||
|
||||
private:
|
||||
Ui::InfoPage *ui;
|
||||
WalletModel *walletModel;
|
||||
ClientModel *clientModel;
|
||||
GUIExchangesWidget* exchangesWidget;
|
||||
|
||||
void createExchangesWidget();
|
||||
double GetNetworkHashRate(int lookup, int height);
|
||||
};
|
||||
|
||||
#endif // INFOPAGE_H
|
||||
@@ -2,7 +2,6 @@
|
||||
#include "ui_optionsdialog.h"
|
||||
|
||||
#include "bitcoinunits.h"
|
||||
#include "currencies.h"
|
||||
#include "monitoreddatamapper.h"
|
||||
#include "netbase.h"
|
||||
#include "optionsmodel.h"
|
||||
@@ -81,7 +80,6 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
|
||||
}
|
||||
|
||||
ui->unit->setModel(new BitcoinUnits(this));
|
||||
ui->currency->setModel(new Currencies(this));
|
||||
|
||||
/* Widget-to-option mapper */
|
||||
mapper = new MonitoredDataMapper(this);
|
||||
@@ -108,6 +106,7 @@ void OptionsDialog::setModel(OptionsModel *model)
|
||||
if(model)
|
||||
{
|
||||
connect(model, SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
|
||||
|
||||
mapper->setModel(model);
|
||||
setMapper();
|
||||
mapper->toFirst();
|
||||
@@ -146,10 +145,8 @@ void OptionsDialog::setMapper()
|
||||
/* Display */
|
||||
mapper->addMapping(ui->lang, OptionsModel::Language);
|
||||
mapper->addMapping(ui->unit, OptionsModel::DisplayUnit);
|
||||
mapper->addMapping(ui->currency, OptionsModel::DisplayFiatCurrency);
|
||||
mapper->addMapping(ui->displayAddresses, OptionsModel::DisplayAddresses);
|
||||
mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures);
|
||||
mapper->addMapping(ui->displayPromotions, OptionsModel::DisplayPromotions);
|
||||
}
|
||||
|
||||
void OptionsDialog::enableApplyButton()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "optionsmodel.h"
|
||||
|
||||
#include "bitcoinunits.h"
|
||||
#include "currencies.h"
|
||||
#include "init.h"
|
||||
#include "walletdb.h"
|
||||
#include "guiutil.h"
|
||||
@@ -50,8 +49,6 @@ void OptionsModel::Init()
|
||||
nTransactionFee = settings.value("nTransactionFee").toLongLong();
|
||||
language = settings.value("language", "").toString();
|
||||
fCoinControlFeatures = settings.value("fCoinControlFeatures", false).toBool();
|
||||
nDisplayFiatCurrency = settings.value("nDisplayFiatCurrency", Currencies::USD).toInt();
|
||||
fDisplayPromotions = settings.value("fDisplayPromotions", true).toBool();
|
||||
|
||||
// These are shared with core Bitcoin; we want
|
||||
// command-line options to override the GUI settings:
|
||||
@@ -202,10 +199,6 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
|
||||
return settings.value("language", "");
|
||||
case CoinControlFeatures:
|
||||
return QVariant(fCoinControlFeatures);
|
||||
case DisplayFiatCurrency:
|
||||
return QVariant(nDisplayFiatCurrency);
|
||||
case DisplayPromotions:
|
||||
return QVariant(fDisplayPromotions);
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
@@ -281,11 +274,6 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
|
||||
settings.setValue("nDisplayUnit", nDisplayUnit);
|
||||
emit displayUnitChanged(nDisplayUnit);
|
||||
break;
|
||||
case DisplayFiatCurrency:
|
||||
nDisplayFiatCurrency = value.toInt();
|
||||
settings.setValue("nDisplayFiatCurrency", nDisplayFiatCurrency);
|
||||
emit displayCurrencyChanged(nDisplayFiatCurrency);
|
||||
break;
|
||||
case DisplayAddresses:
|
||||
bDisplayAddresses = value.toBool();
|
||||
settings.setValue("bDisplayAddresses", bDisplayAddresses);
|
||||
@@ -299,12 +287,6 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
|
||||
emit coinControlFeaturesChanged(fCoinControlFeatures);
|
||||
}
|
||||
break;
|
||||
case DisplayPromotions: {
|
||||
fDisplayPromotions = value.toBool();
|
||||
settings.setValue("fDisplayPromotions", fDisplayPromotions);
|
||||
emit displayPromotionsChanged(fDisplayPromotions);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -27,11 +27,9 @@ public:
|
||||
ProxySocksVersion, // int
|
||||
Fee, // qint64
|
||||
DisplayUnit, // BitcoinUnits::Unit
|
||||
DisplayFiatCurrency, // Currencies::FiatCurrencyID
|
||||
DisplayAddresses, // bool
|
||||
Language, // QString
|
||||
CoinControlFeatures, // bool
|
||||
DisplayPromotions, // bool
|
||||
OptionIDRowCount,
|
||||
};
|
||||
|
||||
@@ -53,8 +51,6 @@ public:
|
||||
bool getDisplayAddresses() { return bDisplayAddresses; }
|
||||
QString getLanguage() { return language; }
|
||||
bool getCoinControlFeatures();
|
||||
int getDisplayFiatCurrency() { return nDisplayFiatCurrency; }
|
||||
bool getDisplayPromotions() { return fDisplayPromotions; }
|
||||
|
||||
private:
|
||||
int nDisplayUnit;
|
||||
@@ -63,15 +59,11 @@ private:
|
||||
bool fMinimizeOnClose;
|
||||
QString language;
|
||||
bool fCoinControlFeatures;
|
||||
int nDisplayFiatCurrency;
|
||||
bool fDisplayPromotions;
|
||||
|
||||
signals:
|
||||
void displayUnitChanged(int unit);
|
||||
void transactionFeeChanged(qint64);
|
||||
void coinControlFeaturesChanged(bool);
|
||||
void displayCurrencyChanged(int currency);
|
||||
void displayPromotionsChanged(bool);
|
||||
};
|
||||
|
||||
#endif // OPTIONSMODEL_H
|
||||
|
||||
@@ -4,23 +4,17 @@
|
||||
#include "clientmodel.h"
|
||||
#include "walletmodel.h"
|
||||
#include "bitcoinunits.h"
|
||||
#include "currencies.h"
|
||||
#include "optionsmodel.h"
|
||||
#include "transactiontablemodel.h"
|
||||
#include "transactionfilterproxy.h"
|
||||
#include "guiutil.h"
|
||||
#include "guiconstants.h"
|
||||
#include "qtquick_controls/cpp/guibannerwidget.h"
|
||||
|
||||
#include "CSCPublicAPI/casinocoinwebapi.h"
|
||||
#include "CSCPublicAPI/casinocoinwebapiparser.h"
|
||||
|
||||
#include <QAbstractItemDelegate>
|
||||
#include <QPainter>
|
||||
#include <QDebug>
|
||||
|
||||
#define DECORATION_SIZE 64
|
||||
#define NUM_ITEMS 5
|
||||
#define NUM_ITEMS 3
|
||||
|
||||
class TxViewDelegate : public QAbstractItemDelegate
|
||||
{
|
||||
@@ -71,23 +65,16 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
foreground = COLOR_POSITIVE;
|
||||
foreground = option.palette.color(QPalette::Text);
|
||||
}
|
||||
painter->setPen(foreground);
|
||||
QString amountText = BitcoinUnits::formatWithUnit(unit, amount, true);
|
||||
QFont amountFont = painter->font();
|
||||
if(!confirmed)
|
||||
{
|
||||
amountText = QString("[") + amountText + QString("]");
|
||||
}
|
||||
else
|
||||
{
|
||||
amountFont.setWeight(QFont::Bold);
|
||||
painter->setFont(amountFont);
|
||||
}
|
||||
painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText);
|
||||
amountFont.setWeight(QFont::Bold);
|
||||
painter->setFont(amountFont);
|
||||
|
||||
painter->setPen(option.palette.color(QPalette::Text));
|
||||
painter->drawText(amountRect, Qt::AlignLeft|Qt::AlignVCenter, GUIUtil::dateTimeStr(date));
|
||||
|
||||
@@ -113,13 +100,9 @@ OverviewPage::OverviewPage(QWidget *parent) :
|
||||
currentUnconfirmedBalance(-1),
|
||||
currentImmatureBalance(-1),
|
||||
txdelegate(new TxViewDelegate()),
|
||||
filter(0),
|
||||
advertsWidget(0),
|
||||
cscWebApiParser( new CasinoCoinWebAPIParser( this ) ),
|
||||
cscWebApi( new CasinoCoinWebAPI( this ) )
|
||||
filter(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
createAdvertsWidget();
|
||||
|
||||
// Recent transactions
|
||||
ui->listTransactions->setItemDelegate(txdelegate);
|
||||
@@ -128,9 +111,6 @@ OverviewPage::OverviewPage(QWidget *parent) :
|
||||
ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||
|
||||
connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex)));
|
||||
connect( cscWebApi, SIGNAL( signalResponseReady(const QByteArray&)), cscWebApiParser, SLOT( slotParseAnswer(const QByteArray&)), Qt::UniqueConnection );
|
||||
connect( cscWebApi, SIGNAL( signalNetworkError(QNetworkReply::NetworkError,const QUrl)), cscWebApiParser, SLOT( slotNetworkError(QNetworkReply::NetworkError,const QUrl)), Qt::UniqueConnection );
|
||||
connect( cscWebApiParser, SIGNAL( signalCoinInfoParsed(JsonCoinInfoParser*)), this, SLOT( updateCoinInfoFromWeb(JsonCoinInfoParser*)), Qt::UniqueConnection );
|
||||
|
||||
// init "out of sync" warning labels
|
||||
ui->labelWalletStatus->setText("(" + tr("out of sync") + ")");
|
||||
@@ -138,9 +118,6 @@ OverviewPage::OverviewPage(QWidget *parent) :
|
||||
|
||||
// start with displaying the "out of sync" warnings
|
||||
showOutOfSyncWarning(true);
|
||||
|
||||
// get CoinInfo from the web
|
||||
getCoinInfo();
|
||||
}
|
||||
|
||||
void OverviewPage::handleTransactionClicked(const QModelIndex &index)
|
||||
@@ -149,6 +126,11 @@ void OverviewPage::handleTransactionClicked(const QModelIndex &index)
|
||||
emit transactionClicked(filter->mapToSource(index));
|
||||
}
|
||||
|
||||
OverviewPage::~OverviewPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance)
|
||||
{
|
||||
int unit = walletModel->getOptionsModel()->getDisplayUnit();
|
||||
@@ -163,18 +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);
|
||||
// set fiat balance
|
||||
updateFiatBalance(walletModel->getOptionsModel()->getDisplayFiatCurrency());
|
||||
}
|
||||
|
||||
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)
|
||||
@@ -207,12 +178,8 @@ void OverviewPage::setWalletModel(WalletModel *model)
|
||||
// Keep up to date with wallet
|
||||
setBalance(model->getBalance(), model->getUnconfirmedBalance(), model->getImmatureBalance());
|
||||
connect(model, SIGNAL(balanceChanged(qint64, qint64, qint64)), this, SLOT(setBalance(qint64, qint64, qint64)));
|
||||
connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
|
||||
connect(model->getOptionsModel(), SIGNAL(displayCurrencyChanged(int)), this, SLOT(updateFiatBalance(int)));
|
||||
connect(model->getOptionsModel(), SIGNAL(displayPromotionsChanged(bool)), this, SLOT(updateDisplayPromotions(bool)));
|
||||
|
||||
// set visibility of adverts widget
|
||||
updateDisplayPromotions(model->getOptionsModel()->getDisplayPromotions());
|
||||
connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
|
||||
}
|
||||
|
||||
// update the display unit, to not use the default ("BTC")
|
||||
@@ -244,53 +211,3 @@ void OverviewPage::showOutOfSyncWarning(bool fShow)
|
||||
ui->labelWalletStatus->setVisible(fShow);
|
||||
ui->labelTransactionsStatus->setVisible(fShow);
|
||||
}
|
||||
|
||||
void OverviewPage::getCoinInfo()
|
||||
{
|
||||
if ( cscWebApi )
|
||||
{
|
||||
cscWebApi->GetCoinInfo();
|
||||
}
|
||||
}
|
||||
|
||||
void OverviewPage::updateCoinInfoFromWeb( JsonCoinInfoParser* coinInfoParser )
|
||||
{
|
||||
qDebug() << "CoinInfo ID: " << coinInfoParser->getCoinInfo().find("ID").value().toDouble();
|
||||
qDebug() << "CoinInfo InfoTime: " <<coinInfoParser->getCoinInfo().find("InfoTime").value().toString();
|
||||
// save the coin information
|
||||
coinInformation = coinInfoParser->getCoinInfo();
|
||||
// calculate and set the estimated fiat balance
|
||||
if(walletModel)
|
||||
{
|
||||
updateFiatBalance(walletModel->getOptionsModel()->getDisplayFiatCurrency());
|
||||
}
|
||||
}
|
||||
|
||||
void OverviewPage::updateFiatBalance(int currency)
|
||||
{
|
||||
if(!coinInformation.isEmpty())
|
||||
{
|
||||
QString conversionCurrency = QString("Price").append(Currencies::name(currency));
|
||||
double currencyValue = coinInformation.find(conversionCurrency).value().toDouble();
|
||||
double fiatBalance = currentBalance * currencyValue;
|
||||
ui->labelBalanceFiat->setText(Currencies::format(currency,fiatBalance,true));
|
||||
}
|
||||
}
|
||||
|
||||
void OverviewPage::updateDisplayPromotions(bool checked)
|
||||
{
|
||||
qDebug() << "updateDisplayPromotions: " << checked;
|
||||
if ( ui->verticalLayoutAdvertWidget->itemAt( 0 ) )
|
||||
{
|
||||
QWidget* pAdvertWidget = ui->verticalLayoutAdvertWidget->itemAt( 0 )->widget();
|
||||
if ( pAdvertWidget )
|
||||
{
|
||||
pAdvertWidget->setVisible( checked );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OverviewPage::~OverviewPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#define OVERVIEWPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QJsonObject>
|
||||
|
||||
namespace Ui {
|
||||
class OverviewPage;
|
||||
@@ -11,10 +10,6 @@ class ClientModel;
|
||||
class WalletModel;
|
||||
class TxViewDelegate;
|
||||
class TransactionFilterProxy;
|
||||
class GUIBannerWidget;
|
||||
class CasinoCoinWebAPIParser;
|
||||
class CasinoCoinWebAPI;
|
||||
class JsonCoinInfoParser;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QModelIndex;
|
||||
@@ -50,22 +45,10 @@ private:
|
||||
TxViewDelegate *txdelegate;
|
||||
TransactionFilterProxy *filter;
|
||||
|
||||
GUIBannerWidget* advertsWidget;
|
||||
/** Create widget to populate adverts */
|
||||
void createAdvertsWidget();
|
||||
/** Get the CoinInfo from REST service */
|
||||
CasinoCoinWebAPIParser* cscWebApiParser;
|
||||
CasinoCoinWebAPI* cscWebApi;
|
||||
void getCoinInfo();
|
||||
QJsonObject coinInformation;
|
||||
|
||||
private slots:
|
||||
void updateDisplayUnit();
|
||||
void handleTransactionClicked(const QModelIndex &index);
|
||||
void updateAlerts(const QString &warnings);
|
||||
void updateCoinInfoFromWeb( JsonCoinInfoParser* coinInfoParser );
|
||||
void updateFiatBalance(int currency);
|
||||
void updateDisplayPromotions(bool checked);
|
||||
};
|
||||
|
||||
#endif // OVERVIEWPAGE_H
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
#include "pryptopage.h"
|
||||
#include "ui_pryptopage.h"
|
||||
#include "walletmodel.h"
|
||||
#include "addresstablemodel.h"
|
||||
#include <QSsl>
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
#include <QListIterator>
|
||||
|
||||
const QString PryptoPage::strAPIEndpoint = "https://prypto.com/merchants/api/";
|
||||
const QString PryptoPage::strMerchantToken = "35616ab118fa557b77fdac78ef09d5632d302609";
|
||||
const QString PryptoPage::strAddressLabel = "Prypto Cards";
|
||||
|
||||
PryptoPage::PryptoPage(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::PryptoPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
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<QSslError> & )), this, SLOT(sslErrorHandler(QNetworkReply*, const QList<QSslError> & )));
|
||||
}
|
||||
|
||||
void PryptoPage::setWalletModel(WalletModel *model)
|
||||
{
|
||||
this->walletModel = model;
|
||||
}
|
||||
|
||||
void PryptoPage::on_butRedeem_clicked()
|
||||
{
|
||||
if((ui->txtPryptoCode->text().length() == 0) ||
|
||||
(ui->txtSecurityCode->text().length() == 0))
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Both Prypto code and Security code must be entered.");
|
||||
msgBox.exec();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show Busy Indicator
|
||||
busyDialog = new QProgressDialog(this);
|
||||
busyDialog->setWindowModality(Qt::WindowModal);
|
||||
busyDialog->setLabelText("Calling Prypto Services ...");
|
||||
busyDialog->setCancelButton(0);
|
||||
busyDialog->setRange(0,0);
|
||||
busyDialog->setMinimumDuration(0);
|
||||
busyDialog->show();
|
||||
// get wallet address for redeem action
|
||||
QString pryptoWalletAddress = walletModel->getAddressTableModel()->addressForLabel(strAddressLabel);
|
||||
// create new if empty
|
||||
if(pryptoWalletAddress == "")
|
||||
{
|
||||
pryptoWalletAddress = walletModel->getAddressTableModel()->addRow(AddressTableModel::Receive, strAddressLabel, "");
|
||||
}
|
||||
// call service
|
||||
QUrl url ( strAPIEndpoint );
|
||||
QUrlQuery query;
|
||||
query.addQueryItem("T", "RX");
|
||||
query.addQueryItem("TKN", strMerchantToken);
|
||||
query.addQueryItem("COIN", "CSC");
|
||||
query.addQueryItem("PC", ui->txtPryptoCode->text());
|
||||
query.addQueryItem("SC", ui->txtSecurityCode->text());
|
||||
query.addQueryItem("RX", pryptoWalletAddress);
|
||||
url.setQuery(query.query());
|
||||
QNetworkRequest networkRequest ( url );
|
||||
networkAccessManager.get( networkRequest );
|
||||
}
|
||||
}
|
||||
|
||||
void PryptoPage::parseAPINetworkResponse( QNetworkReply *finished )
|
||||
{
|
||||
if ( finished->error() != QNetworkReply::NoError )
|
||||
{
|
||||
// A communication error has occurred
|
||||
qDebug() << "API Network Error: " << finished->errorString() << " URL: " << finished->url();
|
||||
busyDialog->cancel();
|
||||
emit apiNetworkError( finished->error());
|
||||
return;
|
||||
}
|
||||
QByteArray data = finished->readAll();
|
||||
qDebug() << "API data: " << data;
|
||||
busyDialog->cancel();
|
||||
emit apiResponseReady( data );
|
||||
}
|
||||
|
||||
void PryptoPage::sslErrorHandler(QNetworkReply* qnr, const QList<QSslError> & errlist)
|
||||
{
|
||||
qDebug() << "---PryptoPage::sslErrorHandler: ";
|
||||
qnr->ignoreSslErrors();
|
||||
}
|
||||
|
||||
void PryptoPage::showAPINetworkError(QNetworkReply::NetworkError error)
|
||||
{
|
||||
qDebug() << "PryptoPage::showAPINetworkError: " << error;
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Error redeeming Prypto Card.");
|
||||
msgBox.exec();
|
||||
}
|
||||
|
||||
void PryptoPage::showAPIResult(QByteArray data)
|
||||
{
|
||||
// reset text fields
|
||||
ui->txtPryptoCode->setText("");
|
||||
ui->txtSecurityCode->setText("");
|
||||
// handle result
|
||||
if(data.length() > 0)
|
||||
{
|
||||
qDebug() << "API Result: " << data;
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Prypto Card succesfully redeemed.");
|
||||
msgBox.exec();
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "API Empty Result";
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Prypto Card already redeemed or invalid.");
|
||||
msgBox.exec();
|
||||
}
|
||||
}
|
||||
|
||||
PryptoPage::~PryptoPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
#ifndef PRYPTOPAGE_H
|
||||
#define PRYPTOPAGE_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QUrlQuery>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
#include <QProgressDialog>
|
||||
#include <QList>
|
||||
|
||||
class WalletModel;
|
||||
|
||||
namespace Ui {
|
||||
class PryptoPage;
|
||||
}
|
||||
|
||||
class PryptoPage : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PryptoPage(QWidget *parent = 0);
|
||||
void setWalletModel(WalletModel *model);
|
||||
~PryptoPage();
|
||||
|
||||
signals:
|
||||
void apiResponseReady( const QByteArray& content );
|
||||
void apiNetworkError( const QNetworkReply::NetworkError& error );
|
||||
|
||||
private slots:
|
||||
void on_butRedeem_clicked();
|
||||
void parseAPINetworkResponse( QNetworkReply *finished );
|
||||
void showAPIResult(QByteArray data);
|
||||
void showAPINetworkError(QNetworkReply::NetworkError error);
|
||||
void sslErrorHandler(QNetworkReply* qnr, const QList<QSslError> & errlist);
|
||||
|
||||
private:
|
||||
static const QString strAPIEndpoint;
|
||||
static const QString strMerchantToken;
|
||||
static const QString strAddressLabel;
|
||||
|
||||
Ui::PryptoPage *ui;
|
||||
QNetworkAccessManager networkAccessManager;
|
||||
WalletModel *walletModel;
|
||||
QProgressDialog *busyDialog;
|
||||
};
|
||||
|
||||
#endif // PRYPTOPAGE_H
|
||||
@@ -1,43 +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::slotPopulateListView( JsonActivePromotionsParser* a_pActivePromotions )
|
||||
{
|
||||
if ( m_pAdvertsView && a_pActivePromotions )
|
||||
{
|
||||
QmlBannerListModel* pAdvertsModel = new QmlBannerListModel( *a_pActivePromotions );
|
||||
m_pAdvertsView->setModel( pAdvertsModel );
|
||||
delete a_pActivePromotions;
|
||||
a_pActivePromotions = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef GUIBANNERCONTROL_H
|
||||
#define GUIBANNERCONTROL_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
#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 slotPopulateListView( JsonActivePromotionsParser* a_pActivePromotions );
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
GUIBannerListView* m_pAdvertsView;
|
||||
};
|
||||
|
||||
#endif // GUIBANNERCONTROL_H
|
||||
@@ -1,50 +0,0 @@
|
||||
#include "guibannerlistview.h"
|
||||
|
||||
#include "qmlbannerlistitem.h"
|
||||
#include "qmlbannerlistmodel.h"
|
||||
#include "qmllistmodel.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QUrl>
|
||||
|
||||
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();
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef GUIBANNERLISTVIEW_H
|
||||
#define GUIBANNERLISTVIEW_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
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* setModel() 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
|
||||
@@ -1,103 +0,0 @@
|
||||
#include "guibannerwidget.h"
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QCheckBox>
|
||||
#include <QQuickView>
|
||||
#include <QQmlContext>
|
||||
|
||||
#include "gui20_skin.h"
|
||||
|
||||
// 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 ) )
|
||||
, 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 );
|
||||
}
|
||||
|
||||
GUIBannerWidget::~GUIBannerWidget()
|
||||
{
|
||||
// member objects are moved to qml engine and it manages their instances
|
||||
}
|
||||
|
||||
void GUIBannerWidget::registerCustomQmlTypes()
|
||||
{
|
||||
qmlRegisterType<GUIBannerControl>("CasinoCoinControls", 1, 0, "GUIBannerControl" );
|
||||
qmlRegisterType<GUIBannerListView>("CasinoCoinControls", 1, 0, "GUIBannerListView" );
|
||||
qmlRegisterType<QmlBannerListModel>("CasinoCoinControls", 1, 0, "QmlBannerListModel" );
|
||||
}
|
||||
|
||||
QWidget* GUIBannerWidget::dockQmlToWidget()
|
||||
{
|
||||
QQuickView* pBannerWindow = new QQuickView;
|
||||
QWidget* pPlaceHolder = 0;
|
||||
if ( pBannerWindow )
|
||||
{
|
||||
QQmlContext* pContext = pBannerWindow->rootContext();
|
||||
if ( pContext )
|
||||
{
|
||||
pContext->setContextProperty( "GUI20Skin", &GUI20Skin::Instance() );
|
||||
}
|
||||
QQmlEngine* pEngine = pBannerWindow->engine();
|
||||
if ( pEngine )
|
||||
{
|
||||
m_pQmlImageProvider = new QmlImageProvider();
|
||||
pEngine->addImageProvider( "advertImages", m_pQmlImageProvider );
|
||||
}
|
||||
pBannerWindow->setSource( QUrl( QStringLiteral( "qrc:/qml/qtquick_controls/qml/QmlGUIBannerWindow.qml" ) ) );
|
||||
QQuickItem* pRootObject = pBannerWindow->rootObject();
|
||||
if ( pRootObject )
|
||||
{
|
||||
m_pBannerControl = pRootObject->findChild<GUIBannerControl*>();
|
||||
if ( m_pBannerControl )
|
||||
{
|
||||
m_pBannerControl->setWidth( ( 115 * 3 ) + ( 4 * 10 ) + 60 );
|
||||
m_pBannerControl->setHeight( 115 );
|
||||
}
|
||||
}
|
||||
pPlaceHolder = QWidget::createWindowContainer( pBannerWindow, this );
|
||||
if ( pPlaceHolder )
|
||||
{
|
||||
pPlaceHolder->setMinimumSize( 445, 115 );
|
||||
pPlaceHolder->setMaximumSize( 445, 115 );
|
||||
}
|
||||
}
|
||||
|
||||
return pPlaceHolder;
|
||||
}
|
||||
|
||||
void GUIBannerWidget::PopulateBannerFromWeb()
|
||||
{
|
||||
if ( m_pWebApiTemporary )
|
||||
{
|
||||
m_pWebApiTemporary->GetActivePromotions();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIBannerWidget::slotPopulateFromWeb( JsonActivePromotionsParser* a_pPromotionsParser )
|
||||
{
|
||||
if ( a_pPromotionsParser )
|
||||
{
|
||||
a_pPromotionsParser->AddImagesToPool( m_pQmlImageProvider );
|
||||
}
|
||||
if ( m_pBannerControl )
|
||||
{
|
||||
m_pBannerControl->slotPopulateListView( a_pPromotionsParser );
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
#ifndef GUIBANNERWIDGET_H
|
||||
#define GUIBANNERWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QNetworkReply>
|
||||
|
||||
class CasinoCoinWebAPIParser;
|
||||
class CasinoCoinWebAPI;
|
||||
class GUIBannerControl;
|
||||
class QmlImageProvider;
|
||||
class JsonActivePromotionsParser;
|
||||
|
||||
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;
|
||||
QmlImageProvider* m_pQmlImageProvider;
|
||||
private slots:
|
||||
void slotPopulateFromWeb( JsonActivePromotionsParser* a_pPromotionsParser );
|
||||
};
|
||||
|
||||
#endif // GUIBANNERWIDGET_H
|
||||
@@ -1,43 +0,0 @@
|
||||
#include "guiexchangescontrol.h"
|
||||
#include "guiexchangeslistview.h"
|
||||
#include "qmlexchangeslistmodel.h"
|
||||
#include "qmlexchangeslistitem.h"
|
||||
|
||||
GUIExchangesControl::GUIExchangesControl( QQuickItem* a_pParent )
|
||||
: QQuickItem( a_pParent )
|
||||
, m_pExchangesView( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
GUIExchangesControl::~GUIExchangesControl()
|
||||
{
|
||||
if ( m_pExchangesView )
|
||||
{
|
||||
delete m_pExchangesView;
|
||||
m_pExchangesView = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void GUIExchangesControl::initializeExchangesView( GUIExchangesListView* a_pView )
|
||||
{
|
||||
if ( a_pView )
|
||||
{
|
||||
if ( m_pExchangesView )
|
||||
{
|
||||
delete m_pExchangesView;
|
||||
}
|
||||
m_pExchangesView = a_pView;
|
||||
}
|
||||
}
|
||||
|
||||
void GUIExchangesControl::slotPopulateListView( JsonActiveExchangesParser* a_pActiveExchanges )
|
||||
{
|
||||
if ( m_pExchangesView && a_pActiveExchanges )
|
||||
{
|
||||
QmlExchangesListModel* pExchangesModel = new QmlExchangesListModel( *a_pActiveExchanges );
|
||||
m_pExchangesView->setModel( pExchangesModel );
|
||||
delete a_pActiveExchanges;
|
||||
a_pActiveExchanges = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#ifndef GUIEEXCHANGESCONTROL_H
|
||||
#define GUIEEXCHANGESCONTROL_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
#include "../../CSCPublicAPI/jsonactiveexchangesparser.h"
|
||||
|
||||
class GUIExchangesListView;
|
||||
|
||||
class GUIExchangesControl : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
GUIExchangesControl( QQuickItem* a_pParent = 0 );
|
||||
virtual ~GUIExchangesControl();
|
||||
|
||||
Q_INVOKABLE void initializeExchangesView( GUIExchangesListView* a_pView );
|
||||
GUIExchangesListView* getExchangesView() const { return m_pExchangesView; }
|
||||
|
||||
public slots:
|
||||
void slotPopulateListView( JsonActiveExchangesParser* a_pActiveExchanges );
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
GUIExchangesListView* m_pExchangesView;
|
||||
};
|
||||
|
||||
#endif // GUIEEXCHANGESCONTROL_H
|
||||
@@ -1,50 +0,0 @@
|
||||
#include "guiexchangeslistview.h"
|
||||
|
||||
#include "qmlexchangeslistitem.h"
|
||||
#include "qmlexchangeslistmodel.h"
|
||||
#include "qmllistmodel.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QUrl>
|
||||
|
||||
GUIExchangesListView::GUIExchangesListView( QQuickItem* a_pParent )
|
||||
: QQuickItem( a_pParent )
|
||||
, m_pModel( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
void GUIExchangesListView::clear()
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
m_pModel->clear();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIExchangesListView::onClicked( int a_iItemIndex )
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
QString strUrl = m_pModel->GetData( a_iItemIndex, QmlExchangesListItem::ROLE_DESTINATION_URL ).toString();
|
||||
QDesktopServices::openUrl( QUrl( strUrl ) );
|
||||
}
|
||||
}
|
||||
|
||||
GUIExchangesListView::~GUIExchangesListView()
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
delete m_pModel;
|
||||
m_pModel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void GUIExchangesListView::setModel( QmlExchangesListModel* a_pModel )
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
delete m_pModel;
|
||||
}
|
||||
m_pModel = a_pModel;
|
||||
emit signalModelChanged();
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
#ifndef GUIEXCHANGESLISTVIEW_H
|
||||
#define GUIEXCHANGESLISTVIEW_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
class QmlListModel;
|
||||
class QmlExchangesListModel;
|
||||
class QmlExchangesListItem;
|
||||
|
||||
class GUIExchangesListView : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY( QmlExchangesListModel* p_pListModel MEMBER m_pModel NOTIFY signalModelChanged )
|
||||
|
||||
public:
|
||||
explicit GUIExchangesListView( QQuickItem *a_pParent = 0 );
|
||||
virtual ~GUIExchangesListView(); /** Destructor **/
|
||||
|
||||
void setModel( QmlExchangesListModel* a_pModel );
|
||||
QmlExchangesListModel* getModel() const { return m_pModel; }
|
||||
|
||||
void clear();
|
||||
|
||||
Q_INVOKABLE void onClicked( int a_iItemIndex );
|
||||
|
||||
signals:
|
||||
void signalModelChanged();
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
|
||||
QmlExchangesListModel* m_pModel;
|
||||
};
|
||||
|
||||
#endif // GUIEXCHANGESLISTVIEW_H
|
||||
@@ -1,113 +0,0 @@
|
||||
#include "guiexchangeswidget.h"
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QCheckBox>
|
||||
#include <QQuickView>
|
||||
#include <QQmlContext>
|
||||
|
||||
#include "gui20_skin.h"
|
||||
|
||||
// qml
|
||||
#include "guiexchangescontrol.h"
|
||||
#include "guiexchangeslistview.h"
|
||||
#include "qmlexchangeslistmodel.h"
|
||||
#include "qmlexchangeslistitem.h"
|
||||
#include "qmlimageprovider.h"
|
||||
|
||||
// web
|
||||
#include "../../CSCPublicAPI/casinocoinwebapi.h"
|
||||
#include "../../CSCPublicAPI/casinocoinwebapiparser.h"
|
||||
|
||||
|
||||
GUIExchangesWidget::GUIExchangesWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_pExchangesControl( 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( signalActiveExchangesParsed(JsonActiveExchangesParser*)), this, SLOT( slotPopulateFromWeb(JsonActiveExchangesParser*)), Qt::UniqueConnection );
|
||||
|
||||
SetupRefreshTimer();
|
||||
m_timerRefresh.start();
|
||||
}
|
||||
|
||||
GUIExchangesWidget::~GUIExchangesWidget()
|
||||
{
|
||||
// member objects are moved to qml engine and it manages their instances
|
||||
}
|
||||
|
||||
void GUIExchangesWidget::registerCustomQmlTypes()
|
||||
{
|
||||
qmlRegisterType<GUIExchangesControl>("CasinoCoinControls", 1, 0, "GUIExchangesControl" );
|
||||
qmlRegisterType<GUIExchangesListView>("CasinoCoinControls", 1, 0, "GUIExchangesListView" );
|
||||
qmlRegisterType<QmlExchangesListModel>("CasinoCoinControls", 1, 0, "QmlExchangesListModel" );
|
||||
}
|
||||
|
||||
void GUIExchangesWidget::SetupRefreshTimer()
|
||||
{
|
||||
m_timerRefresh.setSingleShot( false );
|
||||
m_timerRefresh.setInterval( 1000 * 60 );
|
||||
connect( &m_timerRefresh, SIGNAL( timeout() ), this, SLOT( slotPopulateExchangesFromWeb() ), Qt::UniqueConnection );
|
||||
}
|
||||
|
||||
QWidget* GUIExchangesWidget::dockQmlToWidget()
|
||||
{
|
||||
QQuickView* pExchangesWindow = new QQuickView;
|
||||
QWidget* pPlaceHolder = 0;
|
||||
if ( pExchangesWindow )
|
||||
{
|
||||
QQmlContext* pContext = pExchangesWindow->rootContext();
|
||||
if ( pContext )
|
||||
{
|
||||
pContext->setContextProperty( "GUI20Skin", &GUI20Skin::Instance() );
|
||||
}
|
||||
QQmlEngine* pEngine = pExchangesWindow->engine();
|
||||
if ( pEngine )
|
||||
{
|
||||
m_pQmlImageProvider = new QmlImageProvider();
|
||||
pEngine->addImageProvider( "exchangesImages", m_pQmlImageProvider );
|
||||
}
|
||||
pExchangesWindow->setSource( QUrl( QStringLiteral( "qrc:/qml/qtquick_controls/qml/QmlGUIExchangesWindow.qml" ) ) );
|
||||
QQuickItem* pRootObject = pExchangesWindow->rootObject();
|
||||
if ( pRootObject )
|
||||
{
|
||||
m_pExchangesControl = pRootObject->findChild<GUIExchangesControl*>();
|
||||
if ( m_pExchangesControl )
|
||||
{
|
||||
}
|
||||
}
|
||||
pPlaceHolder = QWidget::createWindowContainer( pExchangesWindow, this );
|
||||
if ( pPlaceHolder )
|
||||
{
|
||||
pPlaceHolder->setMinimumSize( 500, 200 );
|
||||
pPlaceHolder->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
|
||||
}
|
||||
}
|
||||
|
||||
return pPlaceHolder;
|
||||
}
|
||||
|
||||
void GUIExchangesWidget::slotPopulateExchangesFromWeb()
|
||||
{
|
||||
if ( m_pWebApiTemporary )
|
||||
{
|
||||
m_pWebApiTemporary->GetActiveExchanges();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIExchangesWidget::slotPopulateFromWeb( JsonActiveExchangesParser* a_pExchangesParser )
|
||||
{
|
||||
if ( a_pExchangesParser )
|
||||
{
|
||||
a_pExchangesParser->AddImagesToPool( m_pQmlImageProvider );
|
||||
}
|
||||
if ( m_pExchangesControl )
|
||||
{
|
||||
m_pExchangesControl->slotPopulateListView( a_pExchangesParser );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
#ifndef GUIEXCHANGESWIDGET_H
|
||||
#define GUIEXCHANGESWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QNetworkReply>
|
||||
#include <QTimer>
|
||||
|
||||
class CasinoCoinWebAPIParser;
|
||||
class CasinoCoinWebAPI;
|
||||
class GUIExchangesControl;
|
||||
class QmlImageProvider;
|
||||
class JsonActiveExchangesParser;
|
||||
|
||||
class GUIExchangesWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GUIExchangesWidget( QWidget *parent = 0) ;
|
||||
~GUIExchangesWidget();
|
||||
|
||||
QWidget* dockQmlToWidget();
|
||||
|
||||
void PopulateExchangesLocally();
|
||||
|
||||
public slots:
|
||||
void slotPopulateExchangesFromWeb();
|
||||
|
||||
private:
|
||||
void registerCustomQmlTypes();
|
||||
void SetupRefreshTimer();
|
||||
|
||||
GUIExchangesControl* m_pExchangesControl;
|
||||
|
||||
CasinoCoinWebAPIParser* m_pWebApiParserTemporary;
|
||||
CasinoCoinWebAPI* m_pWebApiTemporary;
|
||||
QmlImageProvider* m_pQmlImageProvider;
|
||||
QTimer m_timerRefresh;
|
||||
private slots:
|
||||
void slotPopulateFromWeb( JsonActiveExchangesParser* a_pExchangesParser );
|
||||
|
||||
};
|
||||
|
||||
#endif // GUIEXCHANGESWIDGET_H
|
||||
@@ -1,90 +0,0 @@
|
||||
#include "guimenutoolbarcontrol.h"
|
||||
|
||||
#include "guimenutoolbarlistview.h"
|
||||
#include "qmlmenutoolbarmodel.h"
|
||||
#include "qmlmenutoolbaritem.h"
|
||||
|
||||
#include "gui20_skin.h"
|
||||
|
||||
GUIMenuToolbarControl::GUIMenuToolbarControl( QQuickItem* a_pParent )
|
||||
: QQuickItem( a_pParent )
|
||||
, m_pMenuToolbarView( 0 )
|
||||
, m_strVisitWebsiteText( tr( "Visit our website" ) )
|
||||
, m_strWebsiteURL( tr( "casinocoin.org" ) )
|
||||
{
|
||||
}
|
||||
|
||||
GUIMenuToolbarControl::~GUIMenuToolbarControl()
|
||||
{
|
||||
if ( m_pMenuToolbarView )
|
||||
{
|
||||
delete m_pMenuToolbarView;
|
||||
m_pMenuToolbarView = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void GUIMenuToolbarControl::initializeMenuToolbarView( GUIMenuToolbarListView* a_pView )
|
||||
{
|
||||
if ( a_pView )
|
||||
{
|
||||
if ( m_pMenuToolbarView )
|
||||
{
|
||||
delete m_pMenuToolbarView;
|
||||
}
|
||||
m_pMenuToolbarView = a_pView;
|
||||
if ( m_pMenuToolbarView )
|
||||
{
|
||||
QmlMenuToolbarModel* pStandardMenuModel = new QmlMenuToolbarModel( m_pMenuToolbarView );
|
||||
if ( pStandardMenuModel )
|
||||
{
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Overview" ), tr( "Overview description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_overview_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_overview.png" , OVERVIEW ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Send" ), tr( "Send description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_send_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_send.png" , SEND ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Receive" ), tr( "Receive description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_receive_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_receive.png" , RECEIVE ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Transactions" ), tr( "Transactions description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_transactions_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_transactions.png" , TRANSACTIONS ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Contacts" ), tr( "Contacts description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_contacts_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_contacts.png" , CONTACTS ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Redeem Prypto" ), tr( "Redeem Prypto description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_redeemprypto_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_redeemprypto.png" , REDEEM_PRYPTO ) );
|
||||
pStandardMenuModel->append( new QmlMenuToolbarItem( tr( "Info" ), tr( "Info description" ), "qrc:/icons/res/icons/GUI20_mainToolBar_info_hover.png", "qrc:/icons/res/icons/GUI20_mainToolBar_info.png" , INFO ) );
|
||||
pStandardMenuModel->SetCurrentItemIndex( 0 );
|
||||
m_pMenuToolbarView->SetModel( pStandardMenuModel );
|
||||
connectListViewSignals();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarControl::setVisitWebsiteText( QString a_strNewText )
|
||||
{
|
||||
if ( m_strVisitWebsiteText != a_strNewText )
|
||||
{
|
||||
m_strVisitWebsiteText = a_strNewText;
|
||||
emit signalVisitWebsiteTextChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarControl::setWebsiteURL( QString a_strNewText )
|
||||
{
|
||||
if ( m_strWebsiteURL != a_strNewText )
|
||||
{
|
||||
m_strWebsiteURL = a_strNewText;
|
||||
emit signalWebsiteURLChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarControl::connectListViewSignals()
|
||||
{
|
||||
if ( m_pMenuToolbarView )
|
||||
{
|
||||
disconnect( m_pMenuToolbarView );
|
||||
QmlMenuToolbarModel* pModel = m_pMenuToolbarView->GetModel();
|
||||
if ( pModel )
|
||||
{
|
||||
connect( pModel, SIGNAL( signalCurrentItemIndexChanged() ), this, SLOT( slotCurrentItemIndexChanged() ), Qt::UniqueConnection );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarControl::slotCurrentItemIndexChanged()
|
||||
{
|
||||
emit signalCurrentItemIndexChanged();
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
#ifndef GUIMENUTOOLBARCONTROL_H
|
||||
#define GUIMENUTOOLBARCONTROL_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
class GUIMenuToolbarListView;
|
||||
|
||||
class GUIMenuToolbarControl : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY( QString p_strVisitWebsiteText MEMBER m_strVisitWebsiteText NOTIFY signalVisitWebsiteTextChanged )
|
||||
Q_PROPERTY( QString p_strWebsiteURL MEMBER m_strWebsiteURL NOTIFY signalWebsiteURLChanged )
|
||||
|
||||
Q_ENUMS( EMenuToolbarItemTypes )
|
||||
public:
|
||||
|
||||
enum EMenuToolbarItemTypes
|
||||
{ OVERVIEW
|
||||
, SEND
|
||||
, RECEIVE
|
||||
, TRANSACTIONS
|
||||
, CONTACTS
|
||||
, REDEEM_PRYPTO
|
||||
, INFO
|
||||
};
|
||||
|
||||
GUIMenuToolbarControl( QQuickItem* a_pParent = 0 );
|
||||
virtual ~GUIMenuToolbarControl();
|
||||
|
||||
Q_INVOKABLE void initializeMenuToolbarView( GUIMenuToolbarListView* a_pView );
|
||||
GUIMenuToolbarListView* GetMenuToolbarView() const { return m_pMenuToolbarView; }
|
||||
|
||||
void setVisitWebsiteText( QString a_strNewText );
|
||||
void setWebsiteURL( QString a_strNewText );
|
||||
|
||||
QString GetVisitWebsiteText() const { return m_strVisitWebsiteText; }
|
||||
QString GetWebsiteURL() const { return m_strWebsiteURL; }
|
||||
|
||||
public slots:
|
||||
|
||||
signals:
|
||||
void signalCurrentItemIndexChanged();
|
||||
void signalVisitWebsiteTextChanged();
|
||||
void signalWebsiteURLChanged();
|
||||
void signalOurWebsiteURLClicked();
|
||||
|
||||
private:
|
||||
GUIMenuToolbarListView* m_pMenuToolbarView;
|
||||
QString m_strVisitWebsiteText;
|
||||
QString m_strWebsiteURL;
|
||||
|
||||
void connectListViewSignals();
|
||||
|
||||
private slots:
|
||||
void slotCurrentItemIndexChanged();
|
||||
};
|
||||
|
||||
#endif // GUIMENUTOOLBARCONTROL_H
|
||||
@@ -1,47 +0,0 @@
|
||||
#include "guimenutoolbarlistview.h"
|
||||
|
||||
#include "qmlmenutoolbarmodel.h"
|
||||
#include "qmlmenutoolbaritem.h"
|
||||
|
||||
GUIMenuToolbarListView::GUIMenuToolbarListView( QQuickItem* a_pParent )
|
||||
: QQuickItem( a_pParent )
|
||||
, m_pModel( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
void GUIMenuToolbarListView::Clear()
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
m_pModel->clear();
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarListView::OnClicked( int a_iItemIndex )
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
m_pModel->SetCurrentItemIndex( a_iItemIndex );
|
||||
}
|
||||
}
|
||||
|
||||
GUIMenuToolbarListView::~GUIMenuToolbarListView()
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
delete m_pModel;
|
||||
m_pModel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarListView::SetModel( QmlMenuToolbarModel* a_pModel )
|
||||
{
|
||||
if ( m_pModel )
|
||||
{
|
||||
delete m_pModel;
|
||||
}
|
||||
m_pModel = a_pModel;
|
||||
emit signalModelChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
#ifndef GUIMENUTOOLBARLISTVIEW_H
|
||||
#define GUIMENUTOOLBARLISTVIEW_H
|
||||
|
||||
#include <QQuickItem>
|
||||
|
||||
class QmlListModel;
|
||||
class QmlMenuToolbarModel;
|
||||
class QmlMenuToolbarItem;
|
||||
|
||||
|
||||
class GUIMenuToolbarListView : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY( QmlMenuToolbarModel* p_pListModel MEMBER m_pModel NOTIFY signalModelChanged )
|
||||
|
||||
public:
|
||||
explicit GUIMenuToolbarListView( QQuickItem *a_pParent = 0 );
|
||||
virtual ~GUIMenuToolbarListView(); /** Destructor **/
|
||||
|
||||
void SetModel( QmlMenuToolbarModel* a_pModel );
|
||||
QmlMenuToolbarModel* GetModel() const { return m_pModel; }
|
||||
|
||||
void Clear();
|
||||
|
||||
Q_INVOKABLE void OnClicked( int a_iItemIndex );
|
||||
signals:
|
||||
void signalModelChanged();
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
|
||||
QmlMenuToolbarModel* m_pModel;
|
||||
};
|
||||
|
||||
#endif // GUIMENUTOOLBARLISTVIEW_H
|
||||
@@ -1,118 +0,0 @@
|
||||
#include "guimenutoolbarwidget.h"
|
||||
|
||||
#include "guimenutoolbarcontrol.h"
|
||||
#include "guimenutoolbarlistview.h"
|
||||
#include "qmlmenutoolbarmodel.h"
|
||||
#include "qmlmenutoolbaritem.h"
|
||||
|
||||
#include "qmlimageprovider.h"
|
||||
#include "gui20_skin.h"
|
||||
|
||||
#include <QQuickView>
|
||||
#include <QQmlContext>
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QUrl>
|
||||
|
||||
GUIMenuToolbarWidget::GUIMenuToolbarWidget( QWidget *a_pParent )
|
||||
: QWidget( a_pParent )
|
||||
, m_pToolbarControl( 0 )
|
||||
, m_pQmlImageProvider( 0 )
|
||||
{
|
||||
registerCustomQmlTypes();
|
||||
}
|
||||
|
||||
GUIMenuToolbarWidget::~GUIMenuToolbarWidget()
|
||||
{
|
||||
// member objects are moved to qml engine and it manages their instances
|
||||
}
|
||||
|
||||
void GUIMenuToolbarWidget::registerCustomQmlTypes()
|
||||
{
|
||||
qmlRegisterType<GUIMenuToolbarControl>("CasinoCoinControls", 1, 0, "GUIMenuToolbarControl" );
|
||||
qmlRegisterType<GUIMenuToolbarListView>("CasinoCoinControls", 1, 0, "GUIMenuToolbarListView" );
|
||||
qmlRegisterType<QmlMenuToolbarModel>("CasinoCoinControls", 1, 0, "QmlMenuToolbarModel" );
|
||||
}
|
||||
|
||||
void GUIMenuToolbarWidget::slotCurrentItemChanged()
|
||||
{
|
||||
if ( m_pToolbarControl )
|
||||
{
|
||||
GUIMenuToolbarListView* pListView = m_pToolbarControl->GetMenuToolbarView();
|
||||
if ( pListView )
|
||||
{
|
||||
QmlMenuToolbarModel* pModel = pListView->GetModel();
|
||||
if ( pModel )
|
||||
{
|
||||
emit signalItemClicked( static_cast<GUIMenuToolbarControl::EMenuToolbarItemTypes>( pModel->GetData( pModel->GetCurrentItemIndex(), QmlMenuToolbarItem::ROLE_INTERNAL_TYPE ).toInt() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUIMenuToolbarWidget::slotOurWebsiteURLClicked()
|
||||
{
|
||||
if ( m_pToolbarControl )
|
||||
{
|
||||
QString strUrl = m_pToolbarControl->GetWebsiteURL();
|
||||
if ( !strUrl.contains( "http" ) )
|
||||
{
|
||||
strUrl.prepend( "http://" );
|
||||
}
|
||||
QDesktopServices::openUrl( QUrl( strUrl ) );
|
||||
}
|
||||
}
|
||||
|
||||
QWidget* GUIMenuToolbarWidget::dockQmlToWidget()
|
||||
{
|
||||
QQuickView* pMenuToolbarWindow = new QQuickView;
|
||||
QWidget* pPlaceHolder = 0;
|
||||
if ( pMenuToolbarWindow )
|
||||
{
|
||||
QQmlContext* pContext = pMenuToolbarWindow->rootContext();
|
||||
if ( pContext )
|
||||
{
|
||||
pContext->setContextProperty( "GUI20Skin", &GUI20Skin::Instance() );
|
||||
}
|
||||
QQmlEngine* pEngine = pMenuToolbarWindow->engine();
|
||||
if ( pEngine )
|
||||
{
|
||||
m_pQmlImageProvider = new QmlImageProvider();
|
||||
pEngine->addImageProvider( "mainToolBarImages", m_pQmlImageProvider );
|
||||
}
|
||||
pMenuToolbarWindow->setSource( QUrl( QStringLiteral( "qrc:/qml/qtquick_controls/qml/QmlGUIMenuToolbarWindow.qml" ) ) );
|
||||
QQuickItem* pRootObject = pMenuToolbarWindow->rootObject();
|
||||
if ( pRootObject )
|
||||
{
|
||||
m_pToolbarControl = pRootObject->findChild<GUIMenuToolbarControl*>();
|
||||
if ( m_pToolbarControl )
|
||||
{
|
||||
connect( m_pToolbarControl, SIGNAL( signalCurrentItemIndexChanged() ), this, SLOT( slotCurrentItemChanged() ), Qt::UniqueConnection );
|
||||
connect( m_pToolbarControl, SIGNAL( signalOurWebsiteURLClicked() ), this, SLOT( slotOurWebsiteURLClicked() ), Qt::UniqueConnection );
|
||||
}
|
||||
}
|
||||
pPlaceHolder = QWidget::createWindowContainer( pMenuToolbarWindow );
|
||||
if ( pPlaceHolder )
|
||||
{
|
||||
pPlaceHolder->setMinimumHeight( 82 );
|
||||
}
|
||||
}
|
||||
return pPlaceHolder;
|
||||
}
|
||||
|
||||
void GUIMenuToolbarWidget::SetCurrentItemType( GUIMenuToolbarControl::EMenuToolbarItemTypes a_eType )
|
||||
{
|
||||
if ( m_pToolbarControl )
|
||||
{
|
||||
GUIMenuToolbarListView* pListView = m_pToolbarControl->GetMenuToolbarView();
|
||||
if ( pListView )
|
||||
{
|
||||
QmlMenuToolbarModel* pModel = pListView->GetModel();
|
||||
if ( pModel )
|
||||
{
|
||||
pModel->SetCurrentItemIndex( pModel->GetItemIndex( QmlMenuToolbarItem::ROLE_INTERNAL_TYPE, QVariant( a_eType ) ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef GUIMENUTOOLBARWIDGET_H
|
||||
#define GUIMENUTOOLBARWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "guimenutoolbarcontrol.h"
|
||||
|
||||
class QmlImageProvider;
|
||||
|
||||
class GUIMenuToolbarWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
explicit GUIMenuToolbarWidget( QWidget* a_pParent = 0 );
|
||||
virtual ~GUIMenuToolbarWidget();
|
||||
|
||||
QWidget* dockQmlToWidget();
|
||||
|
||||
void SetCurrentItemType( GUIMenuToolbarControl::EMenuToolbarItemTypes a_eType );
|
||||
signals:
|
||||
void signalItemClicked( GUIMenuToolbarControl::EMenuToolbarItemTypes a_eType );
|
||||
public slots:
|
||||
|
||||
private:
|
||||
void registerCustomQmlTypes();
|
||||
|
||||
GUIMenuToolbarControl* m_pToolbarControl;
|
||||
QmlImageProvider* m_pQmlImageProvider;
|
||||
|
||||
private slots:
|
||||
void slotCurrentItemChanged();
|
||||
void slotOurWebsiteURLClicked();
|
||||
};
|
||||
|
||||
#endif // GUIMENUTOOLBARWIDGET_H
|
||||
@@ -1,19 +0,0 @@
|
||||
#ifndef LISTITEMINTERFACE_H
|
||||
#define LISTITEMINTERFACE_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
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<int, QByteArray> RoleNames() const = 0; /** User roles in model **/
|
||||
};
|
||||
|
||||
#endif // LISTITEMINTERFACE_H
|
||||
@@ -1,32 +0,0 @@
|
||||
#include "qmlbannerlistitem.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
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.GetImageName() ), 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<int, QByteArray> QmlBannerListItem::RoleNames() const
|
||||
{
|
||||
QHash<int, QByteArray> aRoleNames;
|
||||
aRoleNames[ROLE_IMAGE_SOURCE] = "m_imageSource";
|
||||
aRoleNames[ROLE_DESTINATION_URL] = "m_destinationUrl";
|
||||
aRoleNames[ROLE_DESCRIPTION] = "m_description";
|
||||
return aRoleNames;
|
||||
}
|
||||
@@ -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<int, QByteArray> RoleNames() const; /** Define class-specific roles **/
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
#endif // QMLBANNERLISTITEM_H
|
||||
@@ -1,30 +0,0 @@
|
||||
#include "qmlbannerlistmodel.h"
|
||||
|
||||
#include "qmlbannerlistitem.h"
|
||||
|
||||
#include "../../CSCPublicAPI/jsonactivepromotionsparser.h"
|
||||
#include "../../CSCPublicAPI/jsonsingleactivepromotion.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
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()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,79 +0,0 @@
|
||||
#include "qmlexchangeslistitem.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QDateTime>
|
||||
|
||||
QmlExchangesListItem::QmlExchangesListItem(QString a_strImageSource,
|
||||
QString a_strDestinationUrl,
|
||||
QString a_strExchangesName,
|
||||
double a_dBidPrice,
|
||||
double a_dAskPrice,
|
||||
double a_dLastPrice,
|
||||
QString a_strDescription,
|
||||
double a_dVolume24H,
|
||||
QString a_strLastUpdateTime,
|
||||
QObject* a_pParent )
|
||||
: QmlListItem ( QVariant( a_strImageSource )
|
||||
, QVariant( a_strDestinationUrl )
|
||||
, QVariant( a_strExchangesName )
|
||||
, QVariant( getFormattedPrice( a_dBidPrice ) )
|
||||
, QVariant( getFormattedPrice( a_dAskPrice ) )
|
||||
, QVariant( getFormattedPrice( a_dLastPrice ) )
|
||||
, QVariant( a_strDescription )
|
||||
, QVariant( QString::number(a_dVolume24H) )
|
||||
, QVariant( getFormattedDateTime(a_strLastUpdateTime) )
|
||||
, a_pParent
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
QmlExchangesListItem::QmlExchangesListItem( const JsonSingleActiveExchange& a_rExchangeDescription, QObject* a_pParent )
|
||||
: QmlListItem ( QVariant( a_rExchangeDescription.getImageName() )
|
||||
, QVariant( a_rExchangeDescription.getAccessUrl() )
|
||||
, QVariant( a_rExchangeDescription.getExchangeName() )
|
||||
, QVariant( getFormattedPrice( a_rExchangeDescription.getLastBidPriceBTC() ) )
|
||||
, QVariant( getFormattedPrice( a_rExchangeDescription.getLastAskPriceBTC() ) )
|
||||
, QVariant( getFormattedPrice( a_rExchangeDescription.getLastPriceBTC() ) )
|
||||
, QVariant( a_rExchangeDescription.getDescription() )
|
||||
, QVariant( QString::number(a_rExchangeDescription.getVolume24H()) )
|
||||
, QVariant( getFormattedDateTime( a_rExchangeDescription.getLastUpdateTime() ) )
|
||||
, a_pParent
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
QmlExchangesListItem::QmlExchangesListItem( QObject* a_pParent )
|
||||
: QmlListItem( QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), QVariant( "" ), a_pParent )
|
||||
{
|
||||
}
|
||||
|
||||
QmlExchangesListItem::~QmlExchangesListItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> QmlExchangesListItem::RoleNames() const
|
||||
{
|
||||
QHash<int, QByteArray> aRoleNames;
|
||||
aRoleNames[ROLE_IMAGE_SOURCE] = "m_imageSource";
|
||||
aRoleNames[ROLE_DESTINATION_URL] = "m_destinationUrl";
|
||||
aRoleNames[ROLE_EXCHANGE_NAME] = "m_exchangeName";
|
||||
aRoleNames[ROLE_BID_PRICE] = "m_bidPrice";
|
||||
aRoleNames[ROLE_ASK_PRICE] = "m_askPrice";
|
||||
aRoleNames[ROLE_LAST_PRICE] = "m_lastPrice";
|
||||
aRoleNames[ROLE_DESCRIPTION] = "m_description";
|
||||
aRoleNames[ROLE_VOLUME24H] = "m_volume24H";
|
||||
aRoleNames[ROLE_LAST_UPDATE_TIME] = "m_lastUpdateTime";
|
||||
return aRoleNames;
|
||||
}
|
||||
|
||||
QString QmlExchangesListItem::getFormattedPrice(double a_dPrice)
|
||||
{
|
||||
return QString::number( a_dPrice, 'f', 8 );
|
||||
}
|
||||
|
||||
QString QmlExchangesListItem::getFormattedDateTime( QString isoDateTime)
|
||||
{
|
||||
QDateTime datetime = QDateTime::fromString(isoDateTime, Qt::ISODate);
|
||||
return datetime.toString("dd-MM-yyyy HH:mm:ss");
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
#ifndef QMLEXCHANGESLISTITEM_H
|
||||
#define QMLEXCHANGESLISTITEM_H
|
||||
|
||||
#include "qmllistitem.h"
|
||||
#include "../../CSCPublicAPI/jsonsingleactiveexchange.h"
|
||||
|
||||
class QmlExchangesListItem : public QmlListItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum EExchangesRoles /** User-specific model roles **/
|
||||
{ ROLE_IMAGE_SOURCE = ROLE_1
|
||||
, ROLE_DESTINATION_URL = ROLE_2
|
||||
, ROLE_EXCHANGE_NAME = ROLE_3
|
||||
, ROLE_BID_PRICE = ROLE_4
|
||||
, ROLE_ASK_PRICE = ROLE_5
|
||||
, ROLE_LAST_PRICE = ROLE_6
|
||||
, ROLE_DESCRIPTION = ROLE_7
|
||||
, ROLE_VOLUME24H = ROLE_8
|
||||
, ROLE_LAST_UPDATE_TIME = ROLE_9
|
||||
};
|
||||
|
||||
explicit QmlExchangesListItem
|
||||
( QString a_strImageSource
|
||||
, QString a_strDestinationUrl
|
||||
, QString a_strExchangesName
|
||||
, double a_dBidPrice
|
||||
, double a_dAskPrice
|
||||
, double a_dLastPrice
|
||||
, QString a_strDescription
|
||||
, double a_dVolume24H
|
||||
, QString a_strLastUpdateTime
|
||||
, QObject *a_pParent = 0
|
||||
);
|
||||
explicit QmlExchangesListItem ( const JsonSingleActiveExchange& a_rExchangeDescription
|
||||
, QObject *a_pParent = 0
|
||||
);
|
||||
explicit QmlExchangesListItem( QObject *a_pParent = 0 );
|
||||
virtual ~QmlExchangesListItem();
|
||||
|
||||
virtual QHash<int, QByteArray> RoleNames() const; /** Define class-specific roles **/
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
QString getFormattedPrice( double a_dPrice );
|
||||
QString getFormattedDateTime( QString isoDateTime);
|
||||
};
|
||||
|
||||
#endif // QMLEXCHANGESLISTITEM_H
|
||||
@@ -1,30 +0,0 @@
|
||||
#include "qmlexchangeslistmodel.h"
|
||||
|
||||
#include "qmlexchangeslistitem.h"
|
||||
|
||||
#include "../../CSCPublicAPI/jsonactiveexchangesparser.h"
|
||||
#include "../../CSCPublicAPI/jsonsingleactiveexchange.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
QmlExchangesListModel::QmlExchangesListModel( QObject* a_pParent )
|
||||
: QmlListModel( new QmlExchangesListItem( 0 ), a_pParent )
|
||||
{
|
||||
}
|
||||
|
||||
QmlExchangesListModel::QmlExchangesListModel
|
||||
( const JsonActiveExchangesParser& a_rActiveExchanges
|
||||
, QObject* a_pParent
|
||||
)
|
||||
: QmlListModel( new QmlExchangesListItem( 0 ), a_pParent )
|
||||
{
|
||||
foreach( const JsonSingleActiveExchange& rExchange, a_rActiveExchanges.GetExchanges() )
|
||||
{
|
||||
append( new QmlExchangesListItem( rExchange, this ) );
|
||||
}
|
||||
}
|
||||
|
||||
QmlExchangesListModel::~QmlExchangesListModel()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
#ifndef QMLEXCHANGESLISTMODEL_H
|
||||
#define QMLEXCHANGESLISTMODEL_H
|
||||
|
||||
#include "qmllistmodel.h"
|
||||
|
||||
class QmlExchangesListItem;
|
||||
class JsonActiveExchangesParser;
|
||||
|
||||
class QmlExchangesListModel : public QmlListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QmlExchangesListModel( QObject* a_pParent = 0 );
|
||||
explicit QmlExchangesListModel
|
||||
( const JsonActiveExchangesParser& a_rActiveExchanges
|
||||
, QObject* a_pParent = 0
|
||||
);
|
||||
virtual ~QmlExchangesListModel(); /** Destructor **/
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
#endif // QMLEXCHANGESLISTMODEL_H
|
||||
@@ -1,35 +0,0 @@
|
||||
#include "qmlimageprovider.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
QmlImageProvider::QmlImageProvider()
|
||||
: QQuickImageProvider( QQuickImageProvider::Image )
|
||||
{
|
||||
}
|
||||
|
||||
void QmlImageProvider::AddToImagePool( QString a_strImageID, const QImage& a_rImage )
|
||||
{
|
||||
m_aImagePool.insert( a_strImageID, a_rImage );
|
||||
}
|
||||
|
||||
void QmlImageProvider::AddToImagePool( const QMap<QString, QImage>& a_aImages )
|
||||
{
|
||||
QMapIterator<QString,QImage> iter( a_aImages );
|
||||
while( iter.hasNext() )
|
||||
{
|
||||
iter.next();
|
||||
AddToImagePool( iter.key(), iter.value() );
|
||||
}
|
||||
}
|
||||
|
||||
QImage QmlImageProvider::requestImage( const QString& a_rImageID, QSize* a_pSize, const QSize& a_rRequestedSize )
|
||||
{
|
||||
Q_UNUSED( a_rRequestedSize );
|
||||
QImage oImage( m_aImagePool.value( a_rImageID ) );
|
||||
if ( a_pSize )
|
||||
{
|
||||
a_pSize->setWidth( oImage.width() );
|
||||
a_pSize->setHeight( oImage.height() );
|
||||
}
|
||||
return oImage;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user