diff options
Diffstat (limited to 'src')
64 files changed, 511 insertions, 332 deletions
diff --git a/src/Makefile.include b/src/Makefile.include index 070902c519..b9e6c262ca 100644 --- a/src/Makefile.include +++ b/src/Makefile.include @@ -12,7 +12,6 @@ LIBBITCOIN_CLI=$(top_builddir)/src/libbitcoin_cli.a LIBLEVELDB=$(top_builddir)/src/leveldb/libleveldb.a LIBMEMENV=$(top_builddir)/src/leveldb/libmemenv.a LIBBITCOINQT=$(top_builddir)/src/qt/libbitcoinqt.a -MOC_DEFS=$(DEFS) -I$(top_srcdir)/src $(LIBBITCOIN): $(MAKE) -C $(top_builddir)/src $(@F) diff --git a/src/bitcoin-cli-res.rc b/src/bitcoin-cli-res.rc index 337897753e..f8bfb3a881 100644 --- a/src/bitcoin-cli-res.rc +++ b/src/bitcoin-cli-res.rc @@ -5,7 +5,7 @@ #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) #define VER_FILEVERSION VER_PRODUCTVERSION #define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR -#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin developers" +#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core developers" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION diff --git a/src/bitcoind-res.rc b/src/bitcoind-res.rc index 202b7ab352..dc5c56b797 100644 --- a/src/bitcoind-res.rc +++ b/src/bitcoind-res.rc @@ -5,7 +5,7 @@ #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) #define VER_FILEVERSION VER_PRODUCTVERSION #define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR -#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin developers" +#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core developers" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION diff --git a/src/clientversion.h b/src/clientversion.h index b376a67c8a..a06ceb7505 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -19,7 +19,7 @@ // Copyright year (2009-this) // Todo: update this when changing our copyright comments in the source -#define COPYRIGHT_YEAR 2013 +#define COPYRIGHT_YEAR 2014 #endif //HAVE_CONFIG_H diff --git a/src/m4/bitcoin_qt.m4 b/src/m4/bitcoin_qt.m4 index 91c399eef0..758aea3499 100644 --- a/src/m4/bitcoin_qt.m4 +++ b/src/m4/bitcoin_qt.m4 @@ -100,13 +100,13 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[ BITCOIN_QT_PATH_PROGS([LRELEASE], [lrelease-qt${bitcoin_qt_got_major_vers} lrelease${bitcoin_qt_got_major_vers} lrelease], $qt_bin_path) BITCOIN_QT_PATH_PROGS([LUPDATE], [lupdate-qt${bitcoin_qt_got_major_vers} lupdate${bitcoin_qt_got_major_vers} lupdate],$qt_bin_path, yes) + MOC_DEFS='-DHAVE_CONFIG_H -I$(top_srcdir)/src' case $host in *darwin*) BITCOIN_QT_CHECK([ - MOC_DEFS="-DQ_OS_MAC" + MOC_DEFS="${MOC_DEFS} -DQ_OS_MAC" base_frameworks="-framework Foundation -framework ApplicationServices -framework AppKit" AX_CHECK_LINK_FLAG([[$base_frameworks]],[QT_LIBS="$QT_LIBS $base_frameworks"],[AC_MSG_ERROR(could not find base frameworks)]) - AC_SUBST(MOC_DEFS) ]) ;; esac @@ -142,6 +142,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[ AC_SUBST(QT_TEST_INCLUDES) AC_SUBST(QT_TEST_LIBS) AC_SUBST(QT_SELECT, qt${bitcoin_qt_got_major_vers}) + AC_SUBST(MOC_DEFS) ]) dnl All macros below are internal and should _not_ be used from the main @@ -316,6 +317,7 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITHOUT_PKGCONFIG],[ ]) BITCOIN_QT_CHECK(AC_CHECK_LIB([z] ,[main],,BITCOIN_QT_FAIL(zlib not found))) + BITCOIN_QT_CHECK(AC_CHECK_LIB([png] ,[main],,BITCOIN_QT_FAIL(png not found))) BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Core] ,[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXCore not found))) BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Gui] ,[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXGui not found))) BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Network],[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXNetwork not found))) diff --git a/src/main.cpp b/src/main.cpp index 017a0768d5..9c6c1ba0c3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -56,8 +56,13 @@ int64_t CTransaction::nMinRelayTxFee = 10000; static CMedianFilter<int> cPeerBlockCounts(8, 0); // Amount of blocks that other nodes claim to have -map<uint256, CBlock*> mapOrphanBlocks; -multimap<uint256, CBlock*> mapOrphanBlocksByPrev; +struct COrphanBlock { + uint256 hashBlock; + uint256 hashPrev; + vector<unsigned char> vchBlock; +}; +map<uint256, COrphanBlock*> mapOrphanBlocks; +multimap<uint256, COrphanBlock*> mapOrphanBlocksByPrev; map<uint256, CTransaction> mapOrphanTransactions; map<uint256, set<uint256> > mapOrphanTransactionsByPrev; @@ -985,12 +990,19 @@ bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex) return true; } -uint256 static GetOrphanRoot(const CBlockHeader* pblock) +uint256 static GetOrphanRoot(const uint256& hash) { + map<uint256, COrphanBlock*>::iterator it = mapOrphanBlocks.find(hash); + if (it == mapOrphanBlocks.end()) + return hash; + // Work back to the first block in the orphan chain - while (mapOrphanBlocks.count(pblock->hashPrevBlock)) - pblock = mapOrphanBlocks[pblock->hashPrevBlock]; - return pblock->GetHash(); + do { + map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.find(it->second->hashPrev); + if (it2 == mapOrphanBlocks.end()) + return it->first; + it = it2; + } while(true); } int64_t GetBlockValue(int nHeight, int64_t nFees) @@ -2277,12 +2289,19 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl // Accept orphans as long as there is a node to request its parents from if (pfrom) { - CBlock* pblock2 = new CBlock(*pblock); + COrphanBlock* pblock2 = new COrphanBlock(); + { + CDataStream ss(SER_DISK, CLIENT_VERSION); + ss << *pblock; + pblock2->vchBlock = std::vector<unsigned char>(ss.begin(), ss.end()); + } + pblock2->hashBlock = hash; + pblock2->hashPrev = pblock->hashPrevBlock; mapOrphanBlocks.insert(make_pair(hash, pblock2)); - mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrevBlock, pblock2)); + mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrev, pblock2)); // Ask this guy to fill in what we're missing - PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(pblock2)); + PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(hash)); } return true; } @@ -2297,17 +2316,22 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl for (unsigned int i = 0; i < vWorkQueue.size(); i++) { uint256 hashPrev = vWorkQueue[i]; - for (multimap<uint256, CBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev); + for (multimap<uint256, COrphanBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev); mi != mapOrphanBlocksByPrev.upper_bound(hashPrev); ++mi) { - CBlock* pblockOrphan = (*mi).second; + CBlock block; + { + CDataStream ss(mi->second->vchBlock, SER_DISK, CLIENT_VERSION); + ss >> block; + } + block.BuildMerkleTree(); // Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan resolution (that is, feeding people an invalid block based on LegitBlockX in order to get anyone relaying LegitBlockX banned) CValidationState stateDummy; - if (AcceptBlock(*pblockOrphan, stateDummy)) - vWorkQueue.push_back(pblockOrphan->GetHash()); - mapOrphanBlocks.erase(pblockOrphan->GetHash()); - delete pblockOrphan; + if (AcceptBlock(block, stateDummy)) + vWorkQueue.push_back(mi->second->hashBlock); + mapOrphanBlocks.erase(mi->second->hashBlock); + delete mi->second; } mapOrphanBlocksByPrev.erase(hashPrev); } @@ -3331,7 +3355,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) if (!fImporting && !fReindex) pfrom->AskFor(inv); } else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash)) { - PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(mapOrphanBlocks[inv.hash])); + PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(inv.hash)); } else if (nInv == nLastBlock) { // In case we are on a very long side-chain, it is possible that we already have // the last block in an inv bundle sent in response to getblocks. Try to detect @@ -4119,7 +4143,7 @@ public: mapBlockIndex.clear(); // orphan blocks - std::map<uint256, CBlock*>::iterator it2 = mapOrphanBlocks.begin(); + std::map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.begin(); for (; it2 != mapOrphanBlocks.end(); it2++) delete (*it2).second; mapOrphanBlocks.clear(); @@ -209,7 +209,7 @@ public: std::string addrName; CService addrLocal; int nVersion; - // strSubVer is whatever byte array we read from the wire. However, this field is intended + // strSubVer is whatever byte array we read from the wire. However, this field is intended // to be printed out, displayed to humans in various forms and so on. So we sanitize it and // store the sanitized version in cleanSubVer. The original should be used when dealing with // the network or wire types and the cleaned string used when displayed or logged. @@ -264,7 +264,7 @@ public: int64_t nPingUsecStart; int64_t nPingUsecTime; bool fPingQueued; - + CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, INIT_PROTO_VERSION) { nServices = 0; diff --git a/src/qt/Makefile.am b/src/qt/Makefile.am index ac11625c86..274cebcf3a 100644 --- a/src/qt/Makefile.am +++ b/src/qt/Makefile.am @@ -84,8 +84,8 @@ QT_FORMS_UI = \ forms/openuridialog.ui \ forms/optionsdialog.ui \ forms/overviewpage.ui \ - forms/receiverequestdialog.ui \ forms/receivecoinsdialog.ui \ + forms/receiverequestdialog.ui \ forms/rpcconsole.ui \ forms/sendcoinsdialog.ui \ forms/sendcoinsentry.ui \ @@ -117,10 +117,10 @@ QT_MOC_CPP = \ moc_optionsmodel.cpp \ moc_overviewpage.cpp \ moc_paymentserver.cpp \ - moc_receiverequestdialog.cpp \ moc_qvalidatedlineedit.cpp \ moc_qvaluecombobox.cpp \ moc_receivecoinsdialog.cpp \ + moc_receiverequestdialog.cpp \ moc_recentrequeststablemodel.cpp \ moc_rpcconsole.cpp \ moc_sendcoinsdialog.cpp \ @@ -137,9 +137,15 @@ QT_MOC_CPP = \ moc_walletmodel.cpp \ moc_walletview.cpp -BITCOIN_MM = macdockiconhandler.mm macnotificationhandler.mm +BITCOIN_MM = \ + macdockiconhandler.mm \ + macnotificationhandler.mm -QT_MOC = intro.moc overviewpage.moc rpcconsole.moc bitcoin.moc +QT_MOC = \ + bitcoin.moc \ + intro.moc \ + overviewpage.moc \ + rpcconsole.moc QT_QRC_CPP = qrc_bitcoin.cpp QT_QRC = bitcoin.qrc @@ -175,19 +181,19 @@ BITCOIN_QT_H = \ overviewpage.h \ paymentrequestplus.h \ paymentserver.h \ - receivecoinsdialog.h \ - recentrequeststablemodel.h \ - receiverequestdialog.h \ qvalidatedlineedit.h \ qvaluecombobox.h \ + receivecoinsdialog.h \ + receiverequestdialog.h \ + recentrequeststablemodel.h \ rpcconsole.h \ sendcoinsdialog.h \ sendcoinsentry.h \ signverifymessagedialog.h \ splashscreen.h \ trafficgraphwidget.h \ - transactiondescdialog.h \ transactiondesc.h \ + transactiondescdialog.h \ transactionfilterproxy.h \ transactionrecord.h \ transactiontablemodel.h \ @@ -198,54 +204,54 @@ BITCOIN_QT_H = \ walletview.h RES_ICONS = \ - res/icons/bitcoin.png \ + res/icons/add.png \ res/icons/address-book.png \ - res/icons/quit.png \ - res/icons/send.png \ - res/icons/toolbar.png \ - res/icons/connect0_16.png \ - res/icons/connect1_16.png \ - res/icons/connect2_16.png \ - res/icons/connect3_16.png \ - res/icons/connect4_16.png \ - res/icons/transaction0.png \ - res/icons/transaction2.png \ + res/icons/bitcoin.ico \ + res/icons/bitcoin.png \ + res/icons/bitcoin_testnet.ico \ + res/icons/bitcoin_testnet.png \ res/icons/clock1.png \ res/icons/clock2.png \ res/icons/clock3.png \ res/icons/clock4.png \ res/icons/clock5.png \ res/icons/configure.png \ - res/icons/receive.png \ - res/icons/editpaste.png \ - res/icons/editcopy.png \ - res/icons/add.png \ - res/icons/bitcoin_testnet.png \ - res/icons/toolbar_testnet.png \ + res/icons/connect0_16.png \ + res/icons/connect1_16.png \ + res/icons/connect2_16.png \ + res/icons/connect3_16.png \ + res/icons/connect4_16.png \ + res/icons/debugwindow.png \ res/icons/edit.png \ + res/icons/editcopy.png \ + res/icons/editpaste.png \ + res/icons/export.png \ + res/icons/filesave.png \ res/icons/history.png \ + res/icons/key.png \ + res/icons/lock_closed.png \ + res/icons/lock_open.png \ res/icons/overview.png \ - res/icons/export.png \ - res/icons/synced.png \ + res/icons/qrcode.png \ + res/icons/quit.png \ + res/icons/receive.png \ res/icons/remove.png \ - res/icons/tx_mined.png \ + res/icons/send.png \ + res/icons/synced.png \ + res/icons/toolbar.png \ + res/icons/toolbar_testnet.png \ + res/icons/transaction0.png \ + res/icons/transaction2.png \ + res/icons/tx_inout.png \ res/icons/tx_input.png \ res/icons/tx_output.png \ - res/icons/tx_inout.png \ - res/icons/lock_closed.png \ - res/icons/lock_open.png \ - res/icons/key.png \ - res/icons/filesave.png \ - res/icons/qrcode.png \ - res/icons/debugwindow.png \ - res/icons/bitcoin.ico \ - res/icons/bitcoin_testnet.ico + res/icons/tx_mined.png BITCOIN_QT_CPP = \ aboutdialog.cpp \ + bitcoin.cpp \ bitcoinaddressvalidator.cpp \ bitcoinamountfield.cpp \ - bitcoin.cpp \ bitcoingui.cpp \ bitcoinunits.cpp \ clientmodel.cpp \ @@ -292,10 +298,12 @@ BITCOIN_QT_CPP += \ walletview.cpp endif -RES_IMAGES = res/images/about.png res/images/splash.png \ +RES_IMAGES = \ + res/images/about.png \ + res/images/splash.png \ res/images/splash_testnet.png -RES_MOVIES = res/movies/update_spinner.mng +RES_MOVIES = $(wildcard res/movies/spinner-*.png) BITCOIN_RC = res/bitcoin-qt-res.rc diff --git a/src/qt/aboutdialog.cpp b/src/qt/aboutdialog.cpp index 797ebf97ed..6581a19c18 100644 --- a/src/qt/aboutdialog.cpp +++ b/src/qt/aboutdialog.cpp @@ -16,7 +16,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")); + ui->copyrightLabel->setText(tr("Copyright") + QString(" © 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin Core developers")); } void AboutDialog::setModel(ClientModel *model) diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index d04a49ebe7..3cf7e53c02 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -2,7 +2,10 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#if defined(HAVE_CONFIG_H) #include "bitcoin-config.h" +#endif + #include "bitcoingui.h" #include "clientmodel.h" @@ -356,7 +359,7 @@ void BitcoinApplication::requestShutdown() QWidget *shutdownWindow = new QWidget(); QVBoxLayout *layout = new QVBoxLayout(); layout->addWidget(new QLabel( - tr("Bitcoin Core is shutting down...\n") + + tr("Bitcoin Core is shutting down...") + "<br /><br />" + tr("Do not shut down the computer until this window disappears."))); shutdownWindow->setLayout(layout); @@ -553,15 +556,6 @@ int main(int argc, char *argv[]) // Subscribe to global signals from core uiInterface.InitMessage.connect(InitMessage); - // Show help message immediately after parsing command-line options (for "-lang") and setting locale, - // but before showing splash screen. - if (mapArgs.count("-?") || mapArgs.count("--help")) - { - GUIUtil::HelpMessageBox help; - help.showOrPrint(); - return 1; - } - if (GetBoolArg("-splash", true) && !GetBoolArg("-min", false)) app.createSplashScreen(isaTestNet); diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index 3c3220c2b3..746b5a4092 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -47,7 +47,41 @@ <file alias="splash_testnet">res/images/splash_testnet.png</file> </qresource> <qresource prefix="/movies"> - <file alias="update_spinner">res/movies/update_spinner.mng</file> + <file alias="spinner-000">res/movies/spinner-000.png</file> + <file alias="spinner-001">res/movies/spinner-001.png</file> + <file alias="spinner-002">res/movies/spinner-002.png</file> + <file alias="spinner-003">res/movies/spinner-003.png</file> + <file alias="spinner-004">res/movies/spinner-004.png</file> + <file alias="spinner-005">res/movies/spinner-005.png</file> + <file alias="spinner-006">res/movies/spinner-006.png</file> + <file alias="spinner-007">res/movies/spinner-007.png</file> + <file alias="spinner-008">res/movies/spinner-008.png</file> + <file alias="spinner-009">res/movies/spinner-009.png</file> + <file alias="spinner-010">res/movies/spinner-010.png</file> + <file alias="spinner-011">res/movies/spinner-011.png</file> + <file alias="spinner-012">res/movies/spinner-012.png</file> + <file alias="spinner-013">res/movies/spinner-013.png</file> + <file alias="spinner-014">res/movies/spinner-014.png</file> + <file alias="spinner-015">res/movies/spinner-015.png</file> + <file alias="spinner-016">res/movies/spinner-016.png</file> + <file alias="spinner-017">res/movies/spinner-017.png</file> + <file alias="spinner-018">res/movies/spinner-018.png</file> + <file alias="spinner-019">res/movies/spinner-019.png</file> + <file alias="spinner-020">res/movies/spinner-020.png</file> + <file alias="spinner-021">res/movies/spinner-021.png</file> + <file alias="spinner-022">res/movies/spinner-022.png</file> + <file alias="spinner-023">res/movies/spinner-023.png</file> + <file alias="spinner-024">res/movies/spinner-024.png</file> + <file alias="spinner-025">res/movies/spinner-025.png</file> + <file alias="spinner-026">res/movies/spinner-026.png</file> + <file alias="spinner-027">res/movies/spinner-027.png</file> + <file alias="spinner-028">res/movies/spinner-028.png</file> + <file alias="spinner-029">res/movies/spinner-029.png</file> + <file alias="spinner-030">res/movies/spinner-030.png</file> + <file alias="spinner-031">res/movies/spinner-031.png</file> + <file alias="spinner-032">res/movies/spinner-032.png</file> + <file alias="spinner-033">res/movies/spinner-033.png</file> + <file alias="spinner-034">res/movies/spinner-034.png</file> </qresource> <qresource prefix="/translations"> <file alias="ach">locale/bitcoin_ach.qm</file> diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 22c41a6201..692fb6dc1d 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -39,7 +39,6 @@ #include <QMenuBar> #include <QMessageBox> #include <QMimeData> -#include <QMovie> #include <QProgressBar> #include <QSettings> #include <QStackedWidget> @@ -68,7 +67,8 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) : trayIcon(0), notificator(0), rpcConsole(0), - prevBlocks(0) + prevBlocks(0), + spinnerFrame(0) { GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this); @@ -187,8 +187,6 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) : statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); - syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); - connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // prevents an oben debug window from becoming stuck/unusable on client shutdown @@ -302,12 +300,12 @@ void BitcoinGUI::createActions(bool fIsTestnet) openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this); openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console")); - usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Used sending addresses..."), this); + usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Sending addresses..."), this); usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels")); - usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("Used &receiving addresses..."), this); + usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this); usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); - openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open URI..."), this); + openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); openAction->setStatusTip(tr("Open a bitcoin: URI or payment request")); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); @@ -684,9 +682,13 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks) progressBar->setVisible(true); tooltip = tr("Catching up...") + QString("<br>") + tooltip; - labelBlocksIcon->setMovie(syncIconMovie); if(count != prevBlocks) - syncIconMovie->jumpToNextFrame(); + { + labelBlocksIcon->setPixmap(QIcon(QString( + ":/movies/spinner-%1").arg(spinnerFrame, 3, 10, QChar('0'))) + .pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); + spinnerFrame = (spinnerFrame + 1) % SPINNER_FRAMES; + } prevBlocks = count; #ifdef ENABLE_WALLET diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 1038e2739c..d5bbdca484 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -98,9 +98,9 @@ private: Notificator *notificator; RPCConsole *rpcConsole; - QMovie *syncIconMovie; /** Keep track of previous number of blocks, to detect progress */ int prevBlocks; + int spinnerFrame; /** Create the main UI actions. */ void createActions(bool fIsTestnet); diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 183a98061d..b88c7ec290 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -40,6 +40,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "be solved instantly. This is intended for regression testing tools and app " "development."), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Enter regression test mode, which uses a special chain in which blocks can " +"be solved instantly."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Error: The transaction was rejected! This might happen if some of the coins " "in your wallet were already spent, such as if you used a copy of wallet.dat " "and coins were spent in the copy but not marked as spent here."), @@ -119,6 +122,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Connect to JSON-RPC on <port> (default: 8332 QT_TRANSLATE_NOOP("bitcoin-core", "Connect to a node to retrieve peer addresses, and disconnect"), QT_TRANSLATE_NOOP("bitcoin-core", "Corrupted block database detected"), QT_TRANSLATE_NOOP("bitcoin-core", "Discover own IP address (default: 1 when listening and no -externalip)"), +QT_TRANSLATE_NOOP("bitcoin-core", "Do not load the wallet and disable wallet RPC calls"), QT_TRANSLATE_NOOP("bitcoin-core", "Do you want to rebuild the block database now?"), QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"), QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing block database"), @@ -185,7 +189,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Select SOCKS version for -proxy (4 or 5, defa QT_TRANSLATE_NOOP("bitcoin-core", "Send command to Bitcoin server"), QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)"), QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to console instead of debug.log file"), -QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to debugger"), QT_TRANSLATE_NOOP("bitcoin-core", "Server certificate file (default: server.cert)"), QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)"), QT_TRANSLATE_NOOP("bitcoin-core", "Set database cache size in megabytes (default: 25)"), @@ -204,6 +207,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Specify your own public address"), QT_TRANSLATE_NOOP("bitcoin-core", "Start Bitcoin server"), QT_TRANSLATE_NOOP("bitcoin-core", "System error: "), QT_TRANSLATE_NOOP("bitcoin-core", "This help message"), +QT_TRANSLATE_NOOP("bitcoin-core", "This is intended for regression testing tools and app development."), QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)"), QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"), QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amount too small"), @@ -225,6 +229,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Verifying wallet..."), QT_TRANSLATE_NOOP("bitcoin-core", "Wait for RPC server to start"), QT_TRANSLATE_NOOP("bitcoin-core", "Wallet %s resides outside data directory %s"), QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart Bitcoin to complete"), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet options:"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Deprecated argument -debugnet ignored, use -debug=net"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: This version is obsolete, upgrade required!"), diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 9056ab7696..e0d99aac39 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -473,7 +473,7 @@ <item> <widget class="QLabel" name="overriddenByCommandLineInfoLabel"> <property name="text"> - <string>Active command-line options that override above options: </string> + <string>Active command-line options that override above options:</string> </property> <property name="textFormat"> <enum>Qt::PlainText</enum> diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 9d0d838daa..d1ca969431 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -90,6 +90,8 @@ </layout> </item> <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> <layout class="QFormLayout" name="formLayout_2"> <property name="fieldGrowthPolicy"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum> @@ -234,6 +236,21 @@ </item> </layout> </item> + <item> + <spacer name="horizontalSpacer_3"> + <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> </layout> </widget> </item> diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index e7138f5371..8242763e77 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -202,7 +202,7 @@ </font> </property> <property name="text"> - <string>Previously requested payments</string> + <string>Requested payments</string> </property> </widget> </item> diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index 6c9fa6a755..d1a601706b 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -38,4 +38,7 @@ static const int MAX_PAYMENT_REQUEST_SIZE = 50000; // bytes /* QRCodeDialog -- size of exported QR Code image */ #define EXPORT_IMAGE_SIZE 256 +/* Number of frames in spinner animation */ +#define SPINNER_FRAMES 35 + #endif // GUICONSTANTS_H diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 368a4d6003..f52544687b 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -322,24 +322,43 @@ This product includes software developed by the OpenSSL Project for use in the O </message> </context> <context> + <name>BitcoinApplication</name> + <message> + <location filename="../bitcoin.cpp" line="+362"/> + <source>Bitcoin Core is shutting down... +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Do not shut down the computer until this window disappears.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>BitcoinGUI</name> <message> - <location filename="../bitcoingui.cpp" line="+260"/> + <location filename="../bitcoingui.cpp" line="+297"/> <source>Sign &message...</source> <translation>Sign &message...</translation> </message> <message> - <location line="+290"/> + <location line="+323"/> <source>Synchronizing with network...</source> <translation>Synchronizing with network...</translation> </message> <message> - <location line="-360"/> + <location line="-395"/> <source>&Overview</source> <translation>&Overview</translation> </message> <message> - <location line="+1"/> + <location line="-139"/> + <source>Node</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+140"/> <source>Show general overview of wallet</source> <translation>Show general overview of wallet</translation> </message> @@ -354,7 +373,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Browse transaction history</translation> </message> <message> - <location line="+15"/> + <location line="+17"/> <source>E&xit</source> <translation>E&xit</translation> </message> @@ -400,7 +419,22 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Change Passphrase...</translation> </message> <message> - <location line="+295"/> + <location line="+10"/> + <source>&Sending addresses...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>&Receiving addresses...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Open &URI...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+313"/> <source>Importing blocks from disk...</source> <translation>Importing blocks from disk...</translation> </message> @@ -410,12 +444,12 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Reindexing blocks on disk...</translation> </message> <message> - <location line="-358"/> + <location line="-393"/> <source>Send coins to a Bitcoin address</source> <translation>Send coins to a Bitcoin address</translation> </message> <message> - <location line="+47"/> + <location line="+49"/> <source>Modify configuration options for Bitcoin</source> <translation>Modify configuration options for Bitcoin</translation> </message> @@ -445,18 +479,17 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Verify message...</translation> </message> <message> - <location line="+375"/> + <location line="+414"/> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> - <location line="-563"/> - <location line="+10"/> + <location line="-629"/> <source>Wallet</source> <translation>Wallet</translation> </message> <message> - <location line="+113"/> + <location line="+148"/> <source>&Send</source> <translation>&Send</translation> </message> @@ -466,7 +499,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Receive</translation> </message> <message> - <location line="+44"/> + <location line="+46"/> <location line="+2"/> <source>&Show / Hide</source> <translation>&Show / Hide</translation> @@ -492,86 +525,70 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> </message> <message> - <location line="+39"/> + <location line="+44"/> <source>&File</source> <translation>&File</translation> </message> <message> - <location line="+11"/> + <location line="+14"/> <source>&Settings</source> <translation>&Settings</translation> </message> <message> - <location line="+6"/> + <location line="+9"/> <source>&Help</source> <translation>&Help</translation> </message> <message> - <location line="+9"/> + <location line="+14"/> <source>Tabs toolbar</source> <translation>Tabs toolbar</translation> </message> <message> - <location line="-244"/> - <location line="+321"/> + <location line="-281"/> + <location line="+373"/> <source>[testnet]</source> <translation>[testnet]</translation> </message> <message> - <location line="-331"/> - <location line="+10"/> + <location line="-398"/> <source>Bitcoin Core</source> <translation type="unfinished">Bitcoin Core</translation> </message> <message> - <location line="+121"/> + <location line="+165"/> <source>Request payments (generates QR codes and bitcoin: URIs)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+27"/> + <location line="+29"/> <location line="+2"/> <source>&About Bitcoin Core</source> <translation type="unfinished"></translation> </message> <message> - <location line="+34"/> - <source>&Used sending addresses...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1"/> + <location line="+35"/> <source>Show the list of used sending addresses and labels</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> - <source>Used &receiving addresses...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1"/> - <source>Show the list of used receiving addresses and labels</source> - <translation type="unfinished"></translation> - </message> - <message> <location line="+2"/> - <source>Open URI...</source> + <source>Show the list of used receiving addresses and labels</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> + <location line="+3"/> <source>Open a bitcoin: URI or payment request</source> <translation type="unfinished"></translation> </message> <message> - <location line="+126"/> + <location line="+157"/> <location line="+5"/> <source>Bitcoin client</source> <translation>Bitcoin client</translation> </message> <message numerus="yes"> - <location line="+133"/> + <location line="+135"/> <source>%n active connection(s) to Bitcoin network</source> <translation> <numerusform>%n active connection to Bitcoin network</numerusform> @@ -594,7 +611,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Processed %1 blocks of transaction history.</translation> </message> <message numerus="yes"> - <location line="+20"/> + <location line="+23"/> <source>%n hour(s)</source> <translation> <numerusform>%n hour</numerusform> @@ -623,7 +640,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>%1 behind</translation> </message> <message> - <location line="+14"/> + <location line="+17"/> <source>Last received block was generated %1 ago.</source> <translation>Last received block was generated %1 ago.</translation> </message> @@ -648,27 +665,17 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Information</translation> </message> <message> - <location line="+77"/> - <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source> - <translation>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</translation> - </message> - <message> - <location line="-152"/> + <location line="-81"/> <source>Up to date</source> <translation>Up to date</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <source>Catching up...</source> <translation>Catching up...</translation> </message> <message> - <location line="+124"/> - <source>Confirm transaction fee</source> - <translation>Confirm transaction fee</translation> - </message> - <message> - <location line="+8"/> + <location line="+126"/> <source>Sent transaction</source> <translation>Sent transaction</translation> </message> @@ -691,7 +698,7 @@ Address: %4 </translation> </message> <message> - <location line="+67"/> + <location line="+69"/> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> <translation>Wallet is <b>encrypted</b> and currently <b>unlocked</b></translation> </message> @@ -701,7 +708,7 @@ Address: %4 <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> </message> <message> - <location filename="../bitcoin.cpp" line="+116"/> + <location filename="../bitcoin.cpp" line="+78"/> <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> <translation>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</translation> </message> @@ -923,7 +930,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+171"/> + <location line="+31"/> + <source>none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+140"/> <source>Dust</source> <translation type="unfinished"></translation> </message> @@ -960,7 +972,7 @@ Address: %4 </message> <message> <location line="+1"/> - <source>This label turns red, if the priority is smaller than "medium"</source> + <source>This label turns red, if the priority is smaller than "medium".</source> <translation type="unfinished"></translation> </message> <message> @@ -1029,7 +1041,7 @@ Address: %4 <translation>&Address</translation> </message> <message> - <location filename="../editaddressdialog.cpp" line="+25"/> + <location filename="../editaddressdialog.cpp" line="+28"/> <source>New receiving address</source> <translation>New receiving address</translation> </message> @@ -1240,7 +1252,7 @@ Address: %4 <translation>Options</translation> </message> <message> - <location line="+16"/> + <location line="+13"/> <source>&Main</source> <translation>&Main</translation> </message> @@ -1265,7 +1277,47 @@ Address: %4 <translation>&Start Bitcoin on system login</translation> </message> <message> - <location line="+35"/> + <location line="+9"/> + <source>Size of &database cache</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Set database cache size in megabytes (default: 25)</source> + <translation type="unfinished">Set database cache size in megabytes (default: 25)</translation> + </message> + <message> + <location line="+13"/> + <source>MB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Number of script &verification threads</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</source> + <translation type="unfinished">Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</translation> + </message> + <message> + <location line="+58"/> + <source>Connect to the Bitcoin network through a SOCKS proxy.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>&Connect through SOCKS proxy (default proxy):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+34"/> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+267"/> <source>Reset all client options to default.</source> <translation>Reset all client options to default.</translation> </message> @@ -1275,7 +1327,7 @@ Address: %4 <translation>&Reset Options</translation> </message> <message> - <location line="+13"/> + <location line="-323"/> <source>&Network</source> <translation>&Network</translation> </message> @@ -1290,32 +1342,17 @@ Address: %4 <translation>Map port using &UPnP</translation> </message> <message> - <location line="+7"/> - <source>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</source> - <translation>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</translation> - </message> - <message> - <location line="+3"/> - <source>&Connect through SOCKS proxy:</source> - <translation>&Connect through SOCKS proxy:</translation> - </message> - <message> - <location line="+9"/> + <location line="+19"/> <source>Proxy &IP:</source> <translation>Proxy &IP:</translation> </message> <message> - <location line="+19"/> - <source>IP address of the proxy (e.g. 127.0.0.1)</source> - <translation>IP address of the proxy (e.g. 127.0.0.1)</translation> - </message> - <message> - <location line="+7"/> + <location line="+32"/> <source>&Port:</source> <translation>&Port:</translation> </message> <message> - <location line="+19"/> + <location line="+25"/> <source>Port of the proxy (e.g. 9050)</source> <translation>Port of the proxy (e.g. 9050)</translation> </message> @@ -1400,7 +1437,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+71"/> + <location line="+29"/> + <source>Active command-line options that override above options: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+107"/> <source>&OK</source> <translation>&OK</translation> </message> @@ -1410,44 +1452,38 @@ Address: %4 <translation>&Cancel</translation> </message> <message> - <location line="+10"/> - <source>&Apply</source> - <translation>&Apply</translation> - </message> - <message> - <location filename="../optionsdialog.cpp" line="+63"/> + <location filename="../optionsdialog.cpp" line="+68"/> <source>default</source> <translation>default</translation> </message> <message> - <location line="+131"/> + <location line="+57"/> + <source>none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+75"/> <source>Confirm options reset</source> <translation>Confirm options reset</translation> </message> <message> <location line="+1"/> - <source>Some settings may require a client restart to take effect.</source> - <translation>Some settings may require a client restart to take effect.</translation> - </message> - <message> - <location line="+0"/> - <source>Do you want to proceed?</source> - <translation>Do you want to proceed?</translation> + <location line="+29"/> + <source>Client restart required to activate changes.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+42"/> - <location line="+9"/> - <source>Warning</source> - <translation>Warning</translation> + <location line="-29"/> + <source>Client will be shutdown, do you want to proceed?</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-9"/> - <location line="+9"/> - <source>This setting will take effect after restarting Bitcoin.</source> - <translation>This setting will take effect after restarting Bitcoin.</translation> + <location line="+33"/> + <source>This change would require a client restart.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+29"/> + <location line="+34"/> <source>The supplied proxy address is invalid.</source> <translation>The supplied proxy address is invalid.</translation> </message> @@ -1461,22 +1497,22 @@ Address: %4 </message> <message> <location line="+50"/> - <location line="+214"/> + <location line="+231"/> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> <translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation> </message> <message> - <location line="-140"/> + <location line="-155"/> <source>Unconfirmed:</source> <translation>Unconfirmed:</translation> </message> <message> - <location line="-81"/> + <location line="-83"/> <source>Wallet</source> <translation>Wallet</translation> </message> <message> - <location line="+49"/> + <location line="+51"/> <source>Confirmed:</source> <translation>Confirmed:</translation> </message> @@ -1511,7 +1547,7 @@ Address: %4 <translation>Your current total balance</translation> </message> <message> - <location line="+56"/> + <location line="+71"/> <source><b>Recent transactions</b></source> <translation><b>Recent transactions</b></translation> </message> @@ -1525,7 +1561,8 @@ Address: %4 <context> <name>PaymentServer</name> <message> - <location filename="../paymentserver.cpp" line="+397"/> + <location filename="../paymentserver.cpp" line="+400"/> + <location line="+13"/> <source>URI handling</source> <translation type="unfinished">URI handling</translation> </message> @@ -1535,24 +1572,42 @@ Address: %4 <translation type="unfinished">URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> </message> <message> - <location line="+91"/> + <location line="+96"/> <source>Requested payment amount of %1 is too small (considered dust).</source> <translation type="unfinished"></translation> </message> <message> - <location line="-204"/> - <location line="+195"/> + <location line="-216"/> + <location line="+207"/> <location line="+13"/> + <location line="+95"/> + <location line="+18"/> + <location line="+16"/> <source>Payment request error</source> <translation type="unfinished"></translation> </message> <message> - <location line="-207"/> + <location line="-348"/> <source>Cannot start bitcoin: click-to-pay handler</source> <translation type="unfinished"></translation> </message> <message> - <location line="+195"/> + <location line="+106"/> + <source>Payment request fetch URL is invalid: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Payment request file handling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Payment request file can not be read or processed! This can be caused by an invalid payment request file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> <source>Unverified payment requests to custom payment scripts are unsupported.</source> <translation type="unfinished"></translation> </message> @@ -1562,24 +1617,27 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+42"/> + <location line="+43"/> <source>Error communicating with %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> + <location line="+24"/> + <source>Payment request can not be parsed or processed!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> <source>Bad response from server %1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+32"/> + <location line="+33"/> <source>Payment acknowledged</source> <translation type="unfinished"></translation> </message> <message> - <location line="-55"/> - <location line="+27"/> - <location line="+17"/> + <location line="-11"/> <source>Network request error</source> <translation type="unfinished"></translation> </message> @@ -1587,18 +1645,18 @@ Address: %4 <context> <name>QObject</name> <message> - <location filename="../bitcoin.cpp" line="+119"/> - <location line="+5"/> + <location filename="../bitcoin.cpp" line="+71"/> + <location line="+11"/> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> - <location line="-4"/> + <location line="+1"/> <source>Error: Specified data directory "%1" does not exist.</source> <translation>Error: Specified data directory "%1" does not exist.</translation> </message> <message> - <location line="+4"/> + <location line="-12"/> <source>Error: Invalid combination of -regtest and -testnet.</source> <translation type="unfinished"></translation> </message> @@ -1640,7 +1698,8 @@ Address: %4 <location line="+23"/> <location line="+23"/> <location line="+36"/> - <location line="+53"/> + <location line="+23"/> + <location line="+36"/> <location line="+23"/> <location line="+23"/> <location filename="../rpcconsole.cpp" line="+360"/> @@ -1648,7 +1707,7 @@ Address: %4 <translation>N/A</translation> </message> <message> - <location line="-217"/> + <location line="-223"/> <source>Client version</source> <translation>Client version</translation> </message> @@ -1663,7 +1722,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+78"/> + <location line="+25"/> + <source>General</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+53"/> <source>Using OpenSSL version</source> <translation>Using OpenSSL version</translation> </message> @@ -1679,16 +1743,16 @@ Address: %4 </message> <message> <location line="+7"/> - <source>Number of connections</source> - <translation>Number of connections</translation> + <source>Name</source> + <translation type="unfinished"></translation> </message> <message> <location line="+23"/> - <source>On testnet</source> - <translation>On testnet</translation> + <source>Number of connections</source> + <translation>Number of connections</translation> </message> <message> - <location line="+23"/> + <location line="+29"/> <source>Block chain</source> <translation>Block chain</translation> </message> @@ -1753,17 +1817,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="-541"/> + <location line="-547"/> <source>Build date</source> <translation>Build date</translation> </message> <message> - <location line="-79"/> - <source>Bitcoin Core</source> - <translation>Bitcoin Core</translation> - </message> - <message> - <location line="+279"/> + <location line="+206"/> <source>Debug log file</source> <translation>Debug log file</translation> </message> @@ -1897,7 +1956,7 @@ Address: %4 </message> <message> <location line="+47"/> - <source>Previously requested payments</source> + <source>Requested payments</source> <translation type="unfinished"></translation> </message> <message> @@ -1992,7 +2051,7 @@ Address: %4 <context> <name>RecentRequestsTableModel</name> <message> - <location filename="../recentrequeststablemodel.cpp" line="+14"/> + <location filename="../recentrequeststablemodel.cpp" line="+17"/> <source>Date</source> <translation type="unfinished">Date</translation> </message> @@ -2012,7 +2071,7 @@ Address: %4 <translation type="unfinished">Amount</translation> </message> <message> - <location line="+36"/> + <location line="+38"/> <source>(no label)</source> <translation type="unfinished">(no label)</translation> </message> @@ -2027,7 +2086,7 @@ Address: %4 <message> <location filename="../forms/sendcoinsdialog.ui" line="+14"/> <location filename="../sendcoinsdialog.cpp" line="+381"/> - <location line="+81"/> + <location line="+80"/> <source>Send Coins</source> <translation>Send Coins</translation> </message> @@ -2137,7 +2196,7 @@ Address: %4 <translation>S&end</translation> </message> <message> - <location filename="../sendcoinsdialog.cpp" line="-229"/> + <location filename="../sendcoinsdialog.cpp" line="-228"/> <source>Confirm send coins</source> <translation>Confirm send coins</translation> </message> @@ -2240,22 +2299,22 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+113"/> + <location line="+112"/> <source>Warning: Invalid Bitcoin address</source> <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location line="+21"/> <source>(no label)</source> <translation type="unfinished">(no label)</translation> </message> <message> - <location line="+8"/> + <location line="-11"/> <source>Warning: Unknown change address</source> <translation type="unfinished"></translation> </message> <message> - <location line="-378"/> + <location line="-366"/> <source>Are you sure you want to send?</source> <translation type="unfinished"></translation> </message> @@ -2565,7 +2624,7 @@ Address: %4 <context> <name>SplashScreen</name> <message> - <location filename="../splashscreen.cpp" line="+26"/> + <location filename="../splashscreen.cpp" line="+28"/> <source>Bitcoin Core</source> <translation type="unfinished">Bitcoin Core</translation> </message> @@ -2811,8 +2870,13 @@ Address: %4 <source>Amount</source> <translation>Amount</translation> </message> + <message> + <location line="+59"/> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation type="unfinished"></translation> + </message> <message numerus="yes"> - <location line="+57"/> + <location line="+16"/> <source>Open for %n more block(s)</source> <translation> <numerusform>Open for %n more block</numerusform> @@ -2835,20 +2899,13 @@ Address: %4 <translation>Unconfirmed (%1 of %2 confirmations)</translation> </message> <message> - <location line="+3"/> + <location line="-22"/> + <location line="+25"/> <source>Confirmed (%1 confirmations)</source> <translation>Confirmed (%1 confirmations)</translation> </message> - <message numerus="yes"> - <location line="+8"/> - <source>Mined balance will be available when it matures in %n more block(s)</source> - <translation> - <numerusform>Mined balance will be available when it matures in %n more block</numerusform> - <numerusform>Mined balance will be available when it matures in %n more blocks</numerusform> - </translation> - </message> <message> - <location line="+5"/> + <location line="-22"/> <source>This block was not received by any other nodes and will probably not be accepted!</source> <translation>This block was not received by any other nodes and will probably not be accepted!</translation> </message> @@ -2858,7 +2915,7 @@ Address: %4 <translation>Generated but not accepted</translation> </message> <message> - <location line="+43"/> + <location line="+62"/> <source>Received with</source> <translation>Received with</translation> </message> @@ -3154,7 +3211,7 @@ Address: %4 <context> <name>bitcoin-core</name> <message> - <location filename="../bitcoinstrings.cpp" line="+217"/> + <location filename="../bitcoinstrings.cpp" line="+221"/> <source>Usage:</source> <translation>Usage:</translation> </message> @@ -3174,7 +3231,7 @@ Address: %4 <translation>Options:</translation> </message> <message> - <location line="+23"/> + <location line="+22"/> <source>Specify configuration file (default: bitcoin.conf)</source> <translation>Specify configuration file (default: bitcoin.conf)</translation> </message> @@ -3194,7 +3251,7 @@ Address: %4 <translation>Set database cache size in megabytes (default: 25)</translation> </message> <message> - <location line="-27"/> + <location line="-26"/> <source>Listen for connections on <port> (default: 8333 or testnet: 18333)</source> <translation>Listen for connections on <port> (default: 8333 or testnet: 18333)</translation> </message> @@ -3204,7 +3261,7 @@ Address: %4 <translation>Maintain at most <n> connections to peers (default: 125)</translation> </message> <message> - <location line="-50"/> + <location line="-51"/> <source>Connect to a node to retrieve peer addresses, and disconnect</source> <translation>Connect to a node to retrieve peer addresses, and disconnect</translation> </message> @@ -3214,22 +3271,22 @@ Address: %4 <translation>Specify your own public address</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>Threshold for disconnecting misbehaving peers (default: 100)</source> <translation>Threshold for disconnecting misbehaving peers (default: 100)</translation> </message> <message> - <location line="-147"/> + <location line="-148"/> <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source> <translation>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</translation> </message> <message> - <location line="-33"/> + <location line="-36"/> <source>An error occurred while setting up the RPC port %u for listening on IPv4: %s</source> <translation>An error occurred while setting up the RPC port %u for listening on IPv4: %s</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <source>Listen for JSON-RPC connections on <port> (default: 8332 or testnet: 18332)</source> <translation>Listen for JSON-RPC connections on <port> (default: 8332 or testnet: 18332)</translation> </message> @@ -3239,7 +3296,7 @@ Address: %4 <translation>Accept command line and JSON-RPC commands</translation> </message> <message> - <location line="+79"/> + <location line="+80"/> <source>Run in the background as a daemon and accept commands</source> <translation>Run in the background as a daemon and accept commands</translation> </message> @@ -3249,12 +3306,12 @@ Address: %4 <translation>Use the test network</translation> </message> <message> - <location line="-117"/> + <location line="-118"/> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Accept connections from outside (default: 1 if no -proxy or -connect)</translation> </message> <message> - <location line="-92"/> + <location line="-95"/> <source>%s, you must set a rpcpassword in the configuration file: %s It is recommended you use the following random password: @@ -3305,6 +3362,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. </message> <message> <location line="+4"/> + <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> <source>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source> <translation>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</translation> </message> @@ -3410,6 +3472,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. </message> <message> <location line="+1"/> + <source>Do not load the wallet and disable wallet RPC calls</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> <source>Do you want to rebuild the block database now?</source> <translation>Do you want to rebuild the block database now?</translation> </message> @@ -3574,7 +3641,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+7"/> <source>Set maximum block size in bytes (default: %d)</source> <translation type="unfinished"></translation> </message> @@ -3594,7 +3661,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location line="+3"/> + <source>This is intended for regression testing tools and app development.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> <source>Usage (deprecated, use bitcoin-cli):</source> <translation type="unfinished"></translation> </message> @@ -3619,7 +3691,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Wallet %s resides outside data directory %s</translation> </message> <message> - <location line="+3"/> + <location line="+2"/> + <source>Wallet options:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>Warning: Deprecated argument -debugnet ignored, use -debug=net</source> <translation type="unfinished"></translation> </message> @@ -3629,12 +3706,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>You need to rebuild the database using -reindex to change -txindex</translation> </message> <message> - <location line="-78"/> + <location line="-79"/> <source>Imports blocks from external blk000??.dat file</source> <translation>Imports blocks from external blk000??.dat file</translation> </message> <message> - <location line="-104"/> + <location line="-105"/> <source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source> <translation>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</translation> </message> @@ -3654,7 +3731,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</translation> </message> <message> - <location line="+88"/> + <location line="+89"/> <source>Information</source> <translation>Information</translation> </message> @@ -3704,11 +3781,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Send trace/debug info to console instead of debug.log file</translation> </message> <message> - <location line="+1"/> - <source>Send trace/debug info to debugger</source> - <translation>Send trace/debug info to debugger</translation> - </message> - <message> <location line="+6"/> <source>Set minimum block size in bytes (default: 0)</source> <translation>Set minimum block size in bytes (default: 0)</translation> @@ -3734,7 +3806,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>System error: </translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>Transaction amount too small</source> <translation>Transaction amount too small</translation> </message> @@ -3764,7 +3836,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Username for JSON-RPC connections</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>Warning</source> <translation>Warning</translation> </message> @@ -3784,37 +3856,37 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>wallet.dat corrupt, salvage failed</translation> </message> <message> - <location line="-57"/> + <location line="-58"/> <source>Password for JSON-RPC connections</source> <translation>Password for JSON-RPC connections</translation> </message> <message> - <location line="-69"/> + <location line="-70"/> <source>Allow JSON-RPC connections from specified IP address</source> <translation>Allow JSON-RPC connections from specified IP address</translation> </message> <message> - <location line="+79"/> + <location line="+80"/> <source>Send commands to node running on <ip> (default: 127.0.0.1)</source> <translation>Send commands to node running on <ip> (default: 127.0.0.1)</translation> </message> <message> - <location line="-131"/> + <location line="-132"/> <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source> <translation>Execute command when the best block changes (%s in cmd is replaced by block hash)</translation> </message> <message> - <location line="+160"/> + <location line="+161"/> <source>Upgrade wallet to latest format</source> <translation>Upgrade wallet to latest format</translation> </message> <message> - <location line="-23"/> + <location line="-24"/> <source>Set key pool size to <n> (default: 100)</source> <translation>Set key pool size to <n> (default: 100)</translation> </message> <message> - <location line="-12"/> + <location line="-11"/> <source>Rescan the block chain for missing wallet transactions</source> <translation>Rescan the block chain for missing wallet transactions</translation> </message> @@ -3824,7 +3896,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Use OpenSSL (https) for JSON-RPC connections</translation> </message> <message> - <location line="-29"/> + <location line="-30"/> <source>Server certificate file (default: server.cert)</source> <translation>Server certificate file (default: server.cert)</translation> </message> @@ -3839,17 +3911,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>This help message</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>Unable to bind to %s on this computer (bind returned error %d, %s)</source> <translation>Unable to bind to %s on this computer (bind returned error %d, %s)</translation> </message> <message> - <location line="-106"/> + <location line="-107"/> <source>Allow DNS lookups for -addnode, -seednode and -connect</source> <translation>Allow DNS lookups for -addnode, -seednode and -connect</translation> </message> <message> - <location line="+59"/> + <location line="+60"/> <source>Loading addresses...</source> <translation>Loading addresses...</translation> </message> @@ -3889,7 +3961,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Unknown -socks proxy version requested: %i</translation> </message> <message> - <location line="-100"/> + <location line="-101"/> <source>Cannot resolve -bind address: '%s'</source> <translation>Cannot resolve -bind address: '%s'</translation> </message> @@ -3899,7 +3971,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Cannot resolve -externalip address: '%s'</translation> </message> <message> - <location line="+47"/> + <location line="+48"/> <source>Invalid amount for -paytxfee=<amount>: '%s'</source> <translation>Invalid amount for -paytxfee=<amount>: '%s'</translation> </message> @@ -3919,7 +3991,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Loading block index...</translation> </message> <message> - <location line="-61"/> + <location line="-62"/> <source>Add a node to connect to and attempt to keep the connection open</source> <translation>Add a node to connect to and attempt to keep the connection open</translation> </message> @@ -3929,12 +4001,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Unable to bind to %s on this computer. Bitcoin is probably already running.</translation> </message> <message> - <location line="+94"/> + <location line="+95"/> <source>Loading wallet...</source> <translation>Loading wallet...</translation> </message> <message> - <location line="-55"/> + <location line="-56"/> <source>Cannot downgrade wallet</source> <translation>Cannot downgrade wallet</translation> </message> @@ -3944,7 +4016,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Cannot write default address</translation> </message> <message> - <location line="+66"/> + <location line="+67"/> <source>Rescanning...</source> <translation>Rescanning...</translation> </message> @@ -3964,7 +4036,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Error</translation> </message> <message> - <location line="-34"/> + <location line="-35"/> <source>You must set rpcpassword=<password> in the configuration file: %s If the file does not exist, create it with owner-readable-only file permissions.</source> diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 17d80940b7..7642cd117a 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -8,8 +8,6 @@ #include "guiconstants.h" #include "guiutil.h" #include "optionsmodel.h" -#include "paymentserver.h" -#include "walletmodel.h" #include "base58.h" #include "ui_interface.h" @@ -382,40 +380,52 @@ void PaymentServer::handleURIOrFile(const QString& s) #else QUrlQuery uri((QUrl(s))); #endif - if (uri.hasQueryItem("r")) + if (uri.hasQueryItem("r")) // payment request URI { QByteArray temp; temp.append(uri.queryItemValue("r")); QString decoded = QUrl::fromPercentEncoding(temp); QUrl fetchUrl(decoded, QUrl::StrictMode); - qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")"; - if (fetchUrl.isValid()) + { + qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")"; fetchRequest(fetchUrl); + } else + { qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl; + emit message(tr("URI handling"), + tr("Payment request fetch URL is invalid: %1").arg(fetchUrl.toString()), + CClientUIInterface::ICON_WARNING); + } return; } + else // normal URI + { + SendCoinsRecipient recipient; + if (GUIUtil::parseBitcoinURI(s, &recipient)) + emit receivedPaymentRequest(recipient); + else + emit message(tr("URI handling"), + tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), + CClientUIInterface::ICON_WARNING); - SendCoinsRecipient recipient; - if (GUIUtil::parseBitcoinURI(s, &recipient)) - emit receivedPaymentRequest(recipient); - else - emit message(tr("URI handling"), - tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), - CClientUIInterface::ICON_WARNING); - - return; + return; + } } - if (QFile::exists(s)) + if (QFile::exists(s)) // payment request file { PaymentRequestPlus request; SendCoinsRecipient recipient; if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient)) emit receivedPaymentRequest(recipient); + else + emit message(tr("Payment request file handling"), + tr("Payment request file can not be read or processed! This can be caused by an invalid payment request file."), + CClientUIInterface::ICON_WARNING); return; } @@ -594,7 +604,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) .arg(reply->errorString()); qDebug() << "PaymentServer::netRequestFinished : " << msg; - emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); + emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR); return; } @@ -606,9 +616,16 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) PaymentRequestPlus request; SendCoinsRecipient recipient; if (request.parse(data) && processPaymentRequest(request, recipient)) + { emit receivedPaymentRequest(recipient); + } else + { qDebug() << "PaymentServer::netRequestFinished : Error processing payment request"; + emit message(tr("Payment request error"), + tr("Payment request can not be parsed or processed!"), + CClientUIInterface::MSG_ERROR); + } return; } @@ -621,9 +638,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) .arg(reply->request().url().toString()); qDebug() << "PaymentServer::netRequestFinished : " << msg; - emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); + emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR); } - else { + else + { emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo())); } } diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index 5ee85f7db4..af19661bdd 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -102,7 +102,7 @@ public slots: // Submit Payment message to a merchant, get back PaymentACK: void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction); - // Handle an incoming URI or file + // Handle an incoming URI, URI with local file scheme or file void handleURIOrFile(const QString& s); private slots: diff --git a/src/qt/res/movies/spinner-000.png b/src/qt/res/movies/spinner-000.png Binary files differnew file mode 100644 index 0000000000..1f4fb732ef --- /dev/null +++ b/src/qt/res/movies/spinner-000.png diff --git a/src/qt/res/movies/spinner-001.png b/src/qt/res/movies/spinner-001.png Binary files differnew file mode 100644 index 0000000000..e6ca67a1b0 --- /dev/null +++ b/src/qt/res/movies/spinner-001.png diff --git a/src/qt/res/movies/spinner-002.png b/src/qt/res/movies/spinner-002.png Binary files differnew file mode 100644 index 0000000000..2360467aff --- /dev/null +++ b/src/qt/res/movies/spinner-002.png diff --git a/src/qt/res/movies/spinner-003.png b/src/qt/res/movies/spinner-003.png Binary files differnew file mode 100644 index 0000000000..52bed62566 --- /dev/null +++ b/src/qt/res/movies/spinner-003.png diff --git a/src/qt/res/movies/spinner-004.png b/src/qt/res/movies/spinner-004.png Binary files differnew file mode 100644 index 0000000000..de5c88a56f --- /dev/null +++ b/src/qt/res/movies/spinner-004.png diff --git a/src/qt/res/movies/spinner-005.png b/src/qt/res/movies/spinner-005.png Binary files differnew file mode 100644 index 0000000000..27b30336a1 --- /dev/null +++ b/src/qt/res/movies/spinner-005.png diff --git a/src/qt/res/movies/spinner-006.png b/src/qt/res/movies/spinner-006.png Binary files differnew file mode 100644 index 0000000000..1fa6b0e242 --- /dev/null +++ b/src/qt/res/movies/spinner-006.png diff --git a/src/qt/res/movies/spinner-007.png b/src/qt/res/movies/spinner-007.png Binary files differnew file mode 100644 index 0000000000..f54fa8775e --- /dev/null +++ b/src/qt/res/movies/spinner-007.png diff --git a/src/qt/res/movies/spinner-008.png b/src/qt/res/movies/spinner-008.png Binary files differnew file mode 100644 index 0000000000..d25aa5300f --- /dev/null +++ b/src/qt/res/movies/spinner-008.png diff --git a/src/qt/res/movies/spinner-009.png b/src/qt/res/movies/spinner-009.png Binary files differnew file mode 100644 index 0000000000..1349b87586 --- /dev/null +++ b/src/qt/res/movies/spinner-009.png diff --git a/src/qt/res/movies/spinner-010.png b/src/qt/res/movies/spinner-010.png Binary files differnew file mode 100644 index 0000000000..6020e275f1 --- /dev/null +++ b/src/qt/res/movies/spinner-010.png diff --git a/src/qt/res/movies/spinner-011.png b/src/qt/res/movies/spinner-011.png Binary files differnew file mode 100644 index 0000000000..0d0e811ea7 --- /dev/null +++ b/src/qt/res/movies/spinner-011.png diff --git a/src/qt/res/movies/spinner-012.png b/src/qt/res/movies/spinner-012.png Binary files differnew file mode 100644 index 0000000000..937afb6be2 --- /dev/null +++ b/src/qt/res/movies/spinner-012.png diff --git a/src/qt/res/movies/spinner-013.png b/src/qt/res/movies/spinner-013.png Binary files differnew file mode 100644 index 0000000000..4ae5a671a3 --- /dev/null +++ b/src/qt/res/movies/spinner-013.png diff --git a/src/qt/res/movies/spinner-014.png b/src/qt/res/movies/spinner-014.png Binary files differnew file mode 100644 index 0000000000..c3a81add0e --- /dev/null +++ b/src/qt/res/movies/spinner-014.png diff --git a/src/qt/res/movies/spinner-015.png b/src/qt/res/movies/spinner-015.png Binary files differnew file mode 100644 index 0000000000..184a9fe424 --- /dev/null +++ b/src/qt/res/movies/spinner-015.png diff --git a/src/qt/res/movies/spinner-016.png b/src/qt/res/movies/spinner-016.png Binary files differnew file mode 100644 index 0000000000..2da9b9dc72 --- /dev/null +++ b/src/qt/res/movies/spinner-016.png diff --git a/src/qt/res/movies/spinner-017.png b/src/qt/res/movies/spinner-017.png Binary files differnew file mode 100644 index 0000000000..ada83fbe84 --- /dev/null +++ b/src/qt/res/movies/spinner-017.png diff --git a/src/qt/res/movies/spinner-018.png b/src/qt/res/movies/spinner-018.png Binary files differnew file mode 100644 index 0000000000..cc436ba8cb --- /dev/null +++ b/src/qt/res/movies/spinner-018.png diff --git a/src/qt/res/movies/spinner-019.png b/src/qt/res/movies/spinner-019.png Binary files differnew file mode 100644 index 0000000000..03da25bc2a --- /dev/null +++ b/src/qt/res/movies/spinner-019.png diff --git a/src/qt/res/movies/spinner-020.png b/src/qt/res/movies/spinner-020.png Binary files differnew file mode 100644 index 0000000000..e7f2ac78e8 --- /dev/null +++ b/src/qt/res/movies/spinner-020.png diff --git a/src/qt/res/movies/spinner-021.png b/src/qt/res/movies/spinner-021.png Binary files differnew file mode 100644 index 0000000000..dc9e580bf3 --- /dev/null +++ b/src/qt/res/movies/spinner-021.png diff --git a/src/qt/res/movies/spinner-022.png b/src/qt/res/movies/spinner-022.png Binary files differnew file mode 100644 index 0000000000..6e236c805e --- /dev/null +++ b/src/qt/res/movies/spinner-022.png diff --git a/src/qt/res/movies/spinner-023.png b/src/qt/res/movies/spinner-023.png Binary files differnew file mode 100644 index 0000000000..f1c3228485 --- /dev/null +++ b/src/qt/res/movies/spinner-023.png diff --git a/src/qt/res/movies/spinner-024.png b/src/qt/res/movies/spinner-024.png Binary files differnew file mode 100644 index 0000000000..d8cf21f178 --- /dev/null +++ b/src/qt/res/movies/spinner-024.png diff --git a/src/qt/res/movies/spinner-025.png b/src/qt/res/movies/spinner-025.png Binary files differnew file mode 100644 index 0000000000..2b5ede3293 --- /dev/null +++ b/src/qt/res/movies/spinner-025.png diff --git a/src/qt/res/movies/spinner-026.png b/src/qt/res/movies/spinner-026.png Binary files differnew file mode 100644 index 0000000000..5ee3d2fa8e --- /dev/null +++ b/src/qt/res/movies/spinner-026.png diff --git a/src/qt/res/movies/spinner-027.png b/src/qt/res/movies/spinner-027.png Binary files differnew file mode 100644 index 0000000000..c2ee8082bd --- /dev/null +++ b/src/qt/res/movies/spinner-027.png diff --git a/src/qt/res/movies/spinner-028.png b/src/qt/res/movies/spinner-028.png Binary files differnew file mode 100644 index 0000000000..f70d3531ad --- /dev/null +++ b/src/qt/res/movies/spinner-028.png diff --git a/src/qt/res/movies/spinner-029.png b/src/qt/res/movies/spinner-029.png Binary files differnew file mode 100644 index 0000000000..02b97207a9 --- /dev/null +++ b/src/qt/res/movies/spinner-029.png diff --git a/src/qt/res/movies/spinner-030.png b/src/qt/res/movies/spinner-030.png Binary files differnew file mode 100644 index 0000000000..0c74e82c6f --- /dev/null +++ b/src/qt/res/movies/spinner-030.png diff --git a/src/qt/res/movies/spinner-031.png b/src/qt/res/movies/spinner-031.png Binary files differnew file mode 100644 index 0000000000..c5e29bcec7 --- /dev/null +++ b/src/qt/res/movies/spinner-031.png diff --git a/src/qt/res/movies/spinner-032.png b/src/qt/res/movies/spinner-032.png Binary files differnew file mode 100644 index 0000000000..d72c9bf0dd --- /dev/null +++ b/src/qt/res/movies/spinner-032.png diff --git a/src/qt/res/movies/spinner-033.png b/src/qt/res/movies/spinner-033.png Binary files differnew file mode 100644 index 0000000000..a8b822bfaf --- /dev/null +++ b/src/qt/res/movies/spinner-033.png diff --git a/src/qt/res/movies/spinner-034.png b/src/qt/res/movies/spinner-034.png Binary files differnew file mode 100644 index 0000000000..684aa385e0 --- /dev/null +++ b/src/qt/res/movies/spinner-034.png diff --git a/src/qt/res/movies/update_spinner.mng b/src/qt/res/movies/update_spinner.mng Binary files differdeleted file mode 100644 index 7df3baac6f..0000000000 --- a/src/qt/res/movies/update_spinner.mng +++ /dev/null diff --git a/src/qt/test/Makefile.am b/src/qt/test/Makefile.am index 9c3f0417ac..00ccfadf3f 100644 --- a/src/qt/test/Makefile.am +++ b/src/qt/test/Makefile.am @@ -16,12 +16,13 @@ endif TEST_QT_H = \ uritests.h \ - paymentservertests.h \ - paymentrequestdata.h + paymentrequestdata.h \ + paymentservertests.h BUILT_SOURCES = $(TEST_QT_MOC_CPP) test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES) + test_bitcoin_qt_SOURCES = \ test_main.cpp \ uritests.cpp \ @@ -30,7 +31,9 @@ if ENABLE_WALLET test_bitcoin_qt_SOURCES += \ paymentservertests.cpp endif + nodist_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP) + test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) if ENABLE_WALLET test_bitcoin_qt_LDADD += $(LIBBITCOIN_WALLET) @@ -40,4 +43,3 @@ test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \ $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) CLEANFILES = $(BUILT_SOURCES) *.gcda *.gcno - diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 6f3e3b0aaf..14f29c933b 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -488,6 +488,7 @@ bool WalletModel::getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const // returns a list of COutputs from COutPoints void WalletModel::getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs) { + LOCK(wallet->cs_wallet); BOOST_FOREACH(const COutPoint& outpoint, vOutpoints) { if (!wallet->mapWallet.count(outpoint.hash)) continue; diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index c61cc4192b..f8a7d07fc3 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -4,11 +4,11 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "base58.h" -#include "rpcserver.h" #include "init.h" #include "main.h" #include "net.h" #include "netbase.h" +#include "rpcserver.h" #include "util.h" #ifdef ENABLE_WALLET #include "wallet.h" @@ -323,4 +323,3 @@ Value verifymessage(const Array& params, bool fHelp) return (pubkey.GetID() == keyID); } - diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 86025918ef..ff652ca34d 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -4,13 +4,13 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "base58.h" -#include "rpcserver.h" +#include "core.h" #include "init.h" +#include "keystore.h" +#include "main.h" #include "net.h" +#include "rpcserver.h" #include "uint256.h" -#include "core.h" -#include "main.h" -#include "keystore.h" #ifdef ENABLE_WALLET #include "wallet.h" #endif diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 9f2100a8d7..9d34a900ff 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -8,8 +8,8 @@ #include "base58.h" #include "init.h" #include "main.h" -#include "util.h" #include "ui_interface.h" +#include "util.h" #ifdef ENABLE_WALLET #include "wallet.h" #endif diff --git a/src/test/Makefile.am b/src/test/Makefile.am index ff1d22cc24..667e53c6b4 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -37,7 +37,8 @@ test_bitcoin_SOURCES = \ base58_tests.cpp \ base64_tests.cpp \ bignum_tests.cpp \ - bloom_tests.cpp canonical_tests.cpp \ + bloom_tests.cpp \ + canonical_tests.cpp \ checkblock_tests.cpp \ Checkpoints_tests.cpp \ compress_tests.cpp \ diff --git a/src/walletdb.cpp b/src/walletdb.cpp index 2dc6594e93..9c5bddba60 100644 --- a/src/walletdb.cpp +++ b/src/walletdb.cpp @@ -357,16 +357,13 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, { uint256 hash; ssKey >> hash; - CWalletTx& wtx = pwallet->mapWallet[hash]; + CWalletTx wtx; ssValue >> wtx; CValidationState state; if (CheckTransaction(wtx, state) && (wtx.GetHash() == hash) && state.IsValid()) wtx.BindWallet(pwallet); else - { - pwallet->mapWallet.erase(hash); return false; - } // Undo serialize changes in 31600 if (31404 <= wtx.fTimeReceivedIsTxTime && wtx.fTimeReceivedIsTxTime <= 31703) @@ -391,6 +388,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, if (wtx.nOrderPos == -1) wss.fAnyUnordered = true; + pwallet->mapWallet[hash] = wtx; //// debug print //LogPrintf("LoadWallet %s\n", wtx.GetHash().ToString().c_str()); //LogPrintf(" %12"PRId64" %s %s %s\n", |