diff options
-rw-r--r-- | doc/README | 2 | ||||
-rw-r--r-- | doc/README_windows.txt | 2 | ||||
-rw-r--r-- | share/setup.nsi | 4 | ||||
-rw-r--r-- | src/addrman.cpp | 26 | ||||
-rw-r--r-- | src/addrman.h | 2 | ||||
-rw-r--r-- | src/bitcoinrpc.cpp | 8 | ||||
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/qt/bitcoin.cpp | 28 | ||||
-rw-r--r-- | src/qt/bitcoin.qrc | 2 | ||||
-rw-r--r-- | src/qt/forms/aboutdialog.ui | 12 | ||||
-rw-r--r-- | src/qt/forms/addressbookpage.ui | 2 | ||||
-rw-r--r-- | src/qt/forms/messagepage.ui | 22 | ||||
-rw-r--r-- | src/qt/forms/overviewpage.ui | 12 | ||||
-rw-r--r-- | src/qt/forms/qrcodedialog.ui | 6 | ||||
-rw-r--r-- | src/qt/forms/sendcoinsentry.ui | 6 | ||||
-rw-r--r-- | src/qt/messagepage.cpp | 7 | ||||
-rw-r--r-- | src/qt/messagepage.h | 1 | ||||
-rw-r--r-- | src/qt/res/icons/qrcode.png | bin | 0 -> 237 bytes | |||
-rw-r--r-- | src/qt/res/images/qrcode.png | bin | 5993 -> 0 bytes | |||
-rw-r--r-- | src/qt/sendcoinsentry.cpp | 4 | ||||
-rw-r--r-- | src/util.cpp | 2 | ||||
-rw-r--r-- | src/version.h | 2 | ||||
-rw-r--r-- | src/wallet.h | 1 | ||||
-rw-r--r-- | src/walletdb.cpp | 2 |
24 files changed, 106 insertions, 49 deletions
diff --git a/doc/README b/doc/README index aa89960959..a196a461e5 100644 --- a/doc/README +++ b/doc/README @@ -1,4 +1,4 @@ -Bitcoin 0.6.1rc1 BETA +Bitcoin 0.6.1 BETA Copyright (c) 2009-2012 Bitcoin Developers Distributed under the MIT/X11 software license, see the accompanying diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 6b48b1d1e5..ec0225fd92 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin 0.6.1rc1 BETA
+Bitcoin 0.6.1 BETA
Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
diff --git a/share/setup.nsi b/share/setup.nsi index fa33bd9786..10bf36b4cf 100644 --- a/share/setup.nsi +++ b/share/setup.nsi @@ -45,13 +45,13 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English
# Installer attributes
-OutFile bitcoin-0.6.1rc1-win32-setup.exe
+OutFile bitcoin-0.6.1-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
BrandingText " "
ShowInstDetails show
-VIProductVersion 0.6.1.1
+VIProductVersion 0.6.1.3
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
diff --git a/src/addrman.cpp b/src/addrman.cpp index 345261e229..10d005aae9 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -107,9 +107,15 @@ void CAddrMan::SwapRandom(int nRndPos1, int nRndPos2) if (nRndPos1 == nRndPos2) return; + assert(nRndPos1 >= 0 && nRndPos2 >= 0); + assert(nRndPos1 < vRandom.size() && nRndPos2 < vRandom.size()); + int nId1 = vRandom[nRndPos1]; int nId2 = vRandom[nRndPos2]; + assert(mapInfo.count(nId1) == 1); + assert(mapInfo.count(nId2) == 1); + mapInfo[nId1].nRandomPos = nRndPos2; mapInfo[nId2].nRandomPos = nRndPos1; @@ -124,26 +130,32 @@ int CAddrMan::SelectTried(int nKBucket) // random shuffle the first few elements (using the entire list) // find the least recently tried among them int64 nOldest = -1; + int nOldestPos = -1; for (unsigned int i = 0; i < ADDRMAN_TRIED_ENTRIES_INSPECT_ON_EVICT && i < vTried.size(); i++) { int nPos = GetRandInt(vTried.size() - i) + i; int nTemp = vTried[nPos]; vTried[nPos] = vTried[i]; vTried[i] = nTemp; - if (nOldest == -1 || mapInfo[nTemp].nLastSuccess < mapInfo[nOldest].nLastSuccess) + assert(nOldest == -1 || mapInfo.count(nTemp) == 1); + if (nOldest == -1 || mapInfo[nTemp].nLastSuccess < mapInfo[nOldest].nLastSuccess) { nOldest = nTemp; + nOldestPos = nPos; + } } - return nOldest; + return nOldestPos; } int CAddrMan::ShrinkNew(int nUBucket) { + assert(nUBucket >= 0 && nUBucket < vvNew.size()); std::set<int> &vNew = vvNew[nUBucket]; // first look for deletable items for (std::set<int>::iterator it = vNew.begin(); it != vNew.end(); it++) { + assert(mapInfo.count(*it)); CAddrInfo &info = mapInfo[*it]; if (info.IsTerrible()) { @@ -168,11 +180,13 @@ int CAddrMan::ShrinkNew(int nUBucket) { if (nI == n[0] || nI == n[1] || nI == n[2] || nI == n[3]) { + assert(nOldest == -1 || mapInfo.count(*it) == 1); if (nOldest == -1 || mapInfo[*it].nTime < mapInfo[nOldest].nTime) nOldest = *it; } nI++; } + assert(mapInfo.count(nOldest) == 1); CAddrInfo &info = mapInfo[nOldest]; if (--info.nRefCount == 0) { @@ -189,6 +203,8 @@ int CAddrMan::ShrinkNew(int nUBucket) void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin) { + assert(vvNew[nOrigin].count(nId) == 1); + // remove the entry from all new buckets for (std::vector<std::set<int> >::iterator it = vvNew.begin(); it != vvNew.end(); it++) { @@ -197,6 +213,8 @@ void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin) } nNew--; + assert(info.nRefCount == 0); + // what tried bucket to move the entry to int nKBucket = info.GetTriedBucket(nKey); std::vector<int> &vTried = vvTried[nKBucket]; @@ -214,6 +232,7 @@ void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin) int nPos = SelectTried(nKBucket); // find which new bucket it belongs to + assert(mapInfo.count(vTried[nPos]) == 1); int nUBucket = mapInfo[vTried[nPos]].GetNewBucket(nKey); std::set<int> &vNew = vvNew[nUBucket]; @@ -385,6 +404,7 @@ CAddress CAddrMan::Select_(int nUnkBias) std::vector<int> &vTried = vvTried[nKBucket]; if (vTried.size() == 0) continue; int nPos = GetRandInt(vTried.size()); + assert(mapInfo.count(vTried[nPos]) == 1); CAddrInfo &info = mapInfo[vTried[nPos]]; if (GetRandInt(1<<30) < fChanceFactor*info.GetChance()*(1<<30)) return info; @@ -402,6 +422,7 @@ CAddress CAddrMan::Select_(int nUnkBias) std::set<int>::iterator it = vNew.begin(); while (nPos--) it++; + assert(mapInfo.count(*it) == 1); CAddrInfo &info = mapInfo[*it]; if (GetRandInt(1<<30) < fChanceFactor*info.GetChance()*(1<<30)) return info; @@ -481,6 +502,7 @@ void CAddrMan::GetAddr_(std::vector<CAddress> &vAddr) { int nRndPos = GetRandInt(vRandom.size() - n) + n; SwapRandom(n, nRndPos); + assert(mapInfo.count(vRandom[n]) == 1); vAddr.push_back(mapInfo[vRandom[n]]); } } diff --git a/src/addrman.h b/src/addrman.h index 7652df66ae..3768614cfe 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -62,7 +62,7 @@ public: nRandomPos = -1; } - CAddrInfo(const CAddress &addrIn, const CNetAddr &addrSource) : CAddress(addrIn) + CAddrInfo(const CAddress &addrIn, const CNetAddr &addrSource) : CAddress(addrIn), source(addrSource) { Init(); } diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index 15bcf1da3d..0b851c4e70 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -999,10 +999,12 @@ Value addmultisigaddress(const Array& params, bool fHelp) strAccount = AccountFromValue(params[2]); // Gather public keys - if ((nRequired < 1) || ((int)keys.size() < nRequired)) + if (nRequired < 1) + throw runtime_error("a multisignature address must require at least one key to redeem"); + if ((int)keys.size() < nRequired) throw runtime_error( - strprintf("wrong number of keys" - "(got %d, need at least %d)", keys.size(), nRequired)); + strprintf("not enough keys supplied " + "(got %d keys, but need at least %d to redeem)", keys.size(), nRequired)); std::vector<CKey> pubkeys; pubkeys.resize(keys.size()); for (unsigned int i = 0; i < keys.size(); i++) diff --git a/src/main.cpp b/src/main.cpp index 427e435a90..c1c57d1d2b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3188,7 +3188,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey) dPriority += (double)nValueIn * nConf; if (fDebug && GetBoolArg("-printpriority")) - printf("priority nValueIn=%-12I64d nConf=%-5d dPriority=%-20.1f\n", nValueIn, nConf, dPriority); + printf("priority nValueIn=%-12"PRI64d" nConf=%-5d dPriority=%-20.1f\n", nValueIn, nConf, dPriority); } // Priority is sum(valuein * age) / txsize diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 7c262e14cd..4a77bf9b70 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -187,30 +187,31 @@ int main(int argc, char *argv[]) // ... then GUI settings: OptionsModel optionsModel; - // Get desired locale ("en_US") from command line or system locale + // Get desired locale (e.g. "de_DE") from command line or use system locale QString lang_territory = QString::fromStdString(GetArg("-lang", QLocale::system().name().toStdString())); - // Load language files for configured locale: - // - First load the translator for the base language, without territory - // - Then load the more specific locale translator QString lang = lang_territory; + // Convert to "de" only by truncating "_DE" + lang.truncate(lang_territory.lastIndexOf('_')); - lang.truncate(lang_territory.lastIndexOf('_')); // "en" QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator; + // Load language files for configured locale: + // - First load the translator for the base language, without territory + // - Then load the more specific locale translator - qtTranslatorBase.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang); - if (!qtTranslatorBase.isEmpty()) + // Load e.g. qt_de.qm + if (qtTranslatorBase.load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) app.installTranslator(&qtTranslatorBase); - qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang_territory); - if (!qtTranslator.isEmpty()) + // Load e.g. qt_de_DE.qm + if (qtTranslator.load("qt_" + lang_territory, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) app.installTranslator(&qtTranslator); - translatorBase.load(":/translations/"+lang); - if (!translatorBase.isEmpty()) + // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in bitcoin.qrc) + if (translatorBase.load(lang, ":/translations/")) app.installTranslator(&translatorBase); - translator.load(":/translations/"+lang_territory); - if (!translator.isEmpty()) + // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in bitcoin.qrc) + if (translator.load(lang_territory, ":/translations/")) app.installTranslator(&translator); QSplashScreen splash(QPixmap(":/images/splash"), 0); @@ -281,6 +282,7 @@ int main(int argc, char *argv[]) #endif app.exec(); + window.hide(); window.setClientModel(0); window.setWalletModel(0); guiref = 0; diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index e631a65155..e696170312 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -38,11 +38,11 @@ <file alias="lock_open">res/icons/lock_open.png</file> <file alias="key">res/icons/key.png</file> <file alias="filesave">res/icons/filesave.png</file> + <file alias="qrcode">res/icons/qrcode.png</file> </qresource> <qresource prefix="/images"> <file alias="about">res/images/about.png</file> <file alias="splash">res/images/splash2.jpg</file> - <file alias="qrcode">res/images/qrcode.png</file> </qresource> <qresource prefix="/movies"> <file alias="update_spinner">res/movies/update_spinner.mng</file> diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui index 6e342e5e8a..21fc7b2019 100644 --- a/src/qt/forms/aboutdialog.ui +++ b/src/qt/forms/aboutdialog.ui @@ -22,9 +22,6 @@ <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text"> - <string/> - </property> <property name="pixmap"> <pixmap resource="../bitcoin.qrc">:/images/about</pixmap> </property> @@ -49,6 +46,9 @@ <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="label"> + <property name="cursor"> + <cursorShape>IBeamCursor</cursorShape> + </property> <property name="text"> <string><b>Bitcoin</b> version</string> </property> @@ -59,6 +59,9 @@ </item> <item> <widget class="QLabel" name="versionLabel"> + <property name="cursor"> + <cursorShape>IBeamCursor</cursorShape> + </property> <property name="text"> <string notr="true">0.3.666-beta</string> </property> @@ -87,6 +90,9 @@ </item> <item> <widget class="QLabel" name="label_2"> + <property name="cursor"> + <cursorShape>IBeamCursor</cursorShape> + </property> <property name="text"> <string>Copyright © 2009-2012 Bitcoin Developers diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui index b31a9ce997..3ccebd40d9 100644 --- a/src/qt/forms/addressbookpage.ui +++ b/src/qt/forms/addressbookpage.ui @@ -86,7 +86,7 @@ </property> <property name="icon"> <iconset resource="../bitcoin.qrc"> - <normaloff>:/images/qrcode</normaloff>:/images/qrcode</iconset> + <normaloff>:/icons/qrcode</normaloff>:/icons/qrcode</iconset> </property> </widget> </item> diff --git a/src/qt/forms/messagepage.ui b/src/qt/forms/messagepage.ui index ae1e062fca..f2ae160c16 100644 --- a/src/qt/forms/messagepage.ui +++ b/src/qt/forms/messagepage.ui @@ -101,12 +101,12 @@ <italic>true</italic> </font> </property> - <property name="text"> - <string>Click "Sign Message" to get signature</string> - </property> <property name="readOnly"> <bool>true</bool> </property> + <property name="placeholderText"> + <string>Click "Sign Message" to get signature</string> + </property> </widget> </item> <item> @@ -131,7 +131,7 @@ <string>Copy the current signature to the system clipboard</string> </property> <property name="text"> - <string>&Copy to Clipboard</string> + <string>&Copy Signature</string> </property> <property name="icon"> <iconset resource="../bitcoin.qrc"> @@ -140,6 +140,20 @@ </widget> </item> <item> + <widget class="QPushButton" name="clearButton"> + <property name="toolTip"> + <string>Reset all sign message fields</string> + </property> + <property name="text"> + <string>Clear &All</string> + </property> + <property name="icon"> + <iconset resource="../bitcoin.qrc"> + <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset> + </property> + </widget> + </item> + <item> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index cc67fae533..3cf7dd0ed3 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -78,12 +78,14 @@ </item> <item row="1" column="0"> <widget class="QLabel" name="label_5"> + <property name="font"> + <font> + <pointsize>11</pointsize> + <bold>true</bold> + </font> + </property> <property name="text"> - <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Wallet</span></p></body></html></string> + <string>Wallet</string> </property> </widget> </item> diff --git a/src/qt/forms/qrcodedialog.ui b/src/qt/forms/qrcodedialog.ui index 714b1d6cd8..ef21841c26 100644 --- a/src/qt/forms/qrcodedialog.ui +++ b/src/qt/forms/qrcodedialog.ui @@ -6,12 +6,12 @@ <rect> <x>0</x> <y>0</y> - <width>320</width> - <height>404</height> + <width>334</width> + <height>423</height> </rect> </property> <property name="windowTitle"> - <string>Dialog</string> + <string>QR-Code Dialog</string> </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 22a3f8fdc6..da0273e9b1 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -65,6 +65,9 @@ <property name="toolTip"> <string>Enter a label for this address to add it to your address book</string> </property> + <property name="placeholderText"> + <string>Enter a label for this address to add it to your address book</string> + </property> </widget> </item> </layout> @@ -95,6 +98,9 @@ <property name="maxLength"> <number>34</number> </property> + <property name="placeholderText"> + <string>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string> + </property> </widget> </item> <item> diff --git a/src/qt/messagepage.cpp b/src/qt/messagepage.cpp index 18bb64fe6c..d658119a08 100644 --- a/src/qt/messagepage.cpp +++ b/src/qt/messagepage.cpp @@ -105,3 +105,10 @@ void MessagePage::on_signMessage_clicked() ui->signature->setText(QString::fromStdString(EncodeBase64(&vchSig[0], vchSig.size()))); ui->signature->setFont(GUIUtil::bitcoinAddressFont()); } + +void MessagePage::on_clearButton_clicked() +{ + ui->signFrom->clear(); + ui->message->clear(); + ui->signature->clear(); +} diff --git a/src/qt/messagepage.h b/src/qt/messagepage.h index 55e6228124..b5a38166da 100644 --- a/src/qt/messagepage.h +++ b/src/qt/messagepage.h @@ -33,6 +33,7 @@ private slots: void on_signMessage_clicked(); void on_copyToClipboard_clicked(); + void on_clearButton_clicked(); }; #endif // MESSAGEPAGE_H diff --git a/src/qt/res/icons/qrcode.png b/src/qt/res/icons/qrcode.png Binary files differnew file mode 100644 index 0000000000..a8d97174b3 --- /dev/null +++ b/src/qt/res/icons/qrcode.png diff --git a/src/qt/res/images/qrcode.png b/src/qt/res/images/qrcode.png Binary files differdeleted file mode 100644 index c89a49bbce..0000000000 --- a/src/qt/res/images/qrcode.png +++ /dev/null diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index c8242d8352..d9b1daf679 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -21,10 +21,6 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) : ui->payToLayout->setSpacing(4); #endif -#if QT_VERSION >= 0x040700 - ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)")); - ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book")); -#endif setFocusPolicy(Qt::TabFocus); setFocusProxy(ui->payTo); diff --git a/src/util.cpp b/src/util.cpp index 3569f22ecd..3d301d21e3 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -43,7 +43,7 @@ namespace boost { #ifdef _WIN32_IE #undef _WIN32_IE #endif -#define _WIN32_IE 0x0400 +#define _WIN32_IE 0x0501 #define WIN32_LEAN_AND_MEAN 1 #ifndef NOMINMAX #define NOMINMAX diff --git a/src/version.h b/src/version.h index e8d5b5c421..9b92bd618e 100644 --- a/src/version.h +++ b/src/version.h @@ -13,7 +13,7 @@ static const int CLIENT_VERSION_MAJOR = 0; static const int CLIENT_VERSION_MINOR = 6; static const int CLIENT_VERSION_REVISION = 1; -static const int CLIENT_VERSION_BUILD = 1; +static const int CLIENT_VERSION_BUILD = 3; static const int CLIENT_VERSION = 1000000 * CLIENT_VERSION_MAJOR diff --git a/src/wallet.h b/src/wallet.h index 49d21d1c40..44c11e2ec4 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -227,7 +227,6 @@ public: void SetBestChain(const CBlockLocator& loc); int LoadWallet(bool& fFirstRunRet); -// bool BackupWallet(const std::string& strDest); bool SetAddressBookName(const CBitcoinAddress& address, const std::string& strName); diff --git a/src/walletdb.cpp b/src/walletdb.cpp index 709ecac184..e5d57288e8 100644 --- a/src/walletdb.cpp +++ b/src/walletdb.cpp @@ -189,7 +189,7 @@ int CWalletDB::LoadWallet(CWallet* pwallet) //// debug print //printf("LoadWallet %s\n", wtx.GetHash().ToString().c_str()); - //printf(" %12I64d %s %s %s\n", + //printf(" %12"PRI64d" %s %s %s\n", // wtx.vout[0].nValue, // DateTimeStrFormat("%x %H:%M:%S", wtx.GetBlockTime()).c_str(), // wtx.hashBlock.ToString().substr(0,20).c_str(), |