aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-06-10 16:02:46 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-06-12 16:11:56 +0200
commit45615af26fe374fa996c116984a05f0a632a0e79 (patch)
tree8d291f3ddb4b0781e47bdf63e145640bad3b5592
parent97789d374c40f4f7fc8feb19c1235ca09ad2e06e (diff)
downloadbitcoin-45615af26fe374fa996c116984a05f0a632a0e79.tar.xz
Add 'about' information to `-version` output
Adds a copyright and attribution message to the `-version` output (the same as shown in the About dialog in the GUI). Move the message to a function LicenseInfo in init.cpp.
-rw-r--r--src/bitcoind.cpp6
-rw-r--r--src/init.cpp13
-rw-r--r--src/init.h3
-rw-r--r--src/qt/forms/aboutdialog.ui70
-rw-r--r--src/qt/utilitydialog.cpp20
5 files changed, 38 insertions, 74 deletions
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp
index 99dc9d726d..b7d8ee7f90 100644
--- a/src/bitcoind.cpp
+++ b/src/bitcoind.cpp
@@ -87,7 +87,11 @@ bool AppInit(int argc, char* argv[])
{
std::string strUsage = _("Bitcoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n";
- if (!mapArgs.count("-version"))
+ if (mapArgs.count("-version"))
+ {
+ strUsage += LicenseInfo();
+ }
+ else
{
strUsage += "\n" + _("Usage:") + "\n" +
" bitcoind [options] " + _("Start Bitcoin Core Daemon") + "\n" +
diff --git a/src/init.cpp b/src/init.cpp
index 528c3df064..39453da9c8 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -195,7 +195,6 @@ bool static Bind(const CService &addr, unsigned int flags) {
return true;
}
-// Core-specific options shared between UI, daemon and RPC client
std::string HelpMessage(HelpMessageMode hmm)
{
string strUsage = _("Options:") + "\n";
@@ -330,6 +329,18 @@ std::string HelpMessage(HelpMessageMode hmm)
return strUsage;
}
+std::string LicenseInfo()
+{
+ return FormatParagraph(strprintf(_("Copyright (C) 2009-%i The Bitcoin Core Developers"), COPYRIGHT_YEAR)) + "\n" +
+ "\n" +
+ FormatParagraph(_("This is experimental software.")) + "\n" +
+ "\n" +
+ FormatParagraph(_("Distributed under the MIT/X11 software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.")) + "\n" +
+ "\n" +
+ FormatParagraph(_("This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.")) +
+ "\n";
+}
+
struct CImportingNow
{
CImportingNow() {
diff --git a/src/init.h b/src/init.h
index 4a967bea37..52daa47616 100644
--- a/src/init.h
+++ b/src/init.h
@@ -28,6 +28,9 @@ enum HelpMessageMode
HMM_BITCOIN_QT
};
+/** Help for options shared between UI and daemon (for -help) */
std::string HelpMessage(HelpMessageMode mode);
+/** Returns licensing information (for -version) */
+std::string LicenseInfo();
#endif
diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui
index fec63f737a..51dabf2c30 100644
--- a/src/qt/forms/aboutdialog.ui
+++ b/src/qt/forms/aboutdialog.ui
@@ -43,76 +43,14 @@
</spacer>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="cursor">
- <cursorShape>IBeamCursor</cursorShape>
- </property>
- <property name="text">
- <string>&lt;b&gt;Bitcoin Core&lt;/b&gt; version</string>
- </property>
- <property name="textInteractionFlags">
- <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- </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>
- <property name="textInteractionFlags">
- <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="copyrightLabel">
- <property name="cursor">
- <cursorShape>IBeamCursor</cursorShape>
- </property>
- <property name="text">
- <string notr="true">Copyright &amp;copy; 2009-YYYY The Bitcoin Core developers</string>
- </property>
- <property name="textFormat">
- <enum>Qt::RichText</enum>
- </property>
- <property name="textInteractionFlags">
- <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_2">
+ <widget class="QLabel" name="versionLabel">
<property name="cursor">
<cursorShape>IBeamCursor</cursorShape>
</property>
<property name="text">
- <string>
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file COPYING or &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;http://www.opensource.org/licenses/mit-license.php&lt;/a&gt;.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (&lt;a href=&quot;https://www.openssl.org/&quot;&gt;https://www.openssl.org/&lt;/a&gt;) and cryptographic software written by Eric Young (&lt;a href=&quot;mailto:eay@cryptsoft.com&quot;&gt;eay@cryptsoft.com&lt;/a&gt;) and UPnP software written by Thomas Bernard.</string>
+ <string notr="true">
+(placeholder for version message)
+ </string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp
index 435c6a4368..a34ebd3a37 100644
--- a/src/qt/utilitydialog.cpp
+++ b/src/qt/utilitydialog.cpp
@@ -16,6 +16,7 @@
#include "util.h"
#include <QLabel>
+#include <QRegExp>
#include <QVBoxLayout>
/** "About" dialog box */
@@ -24,16 +25,13 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui(new Ui::AboutDialog)
{
ui->setupUi(this);
-
- // Set current copyright year
- ui->copyrightLabel->setText(tr("Copyright") + QString(" &copy; 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin Core developers"));
}
void AboutDialog::setModel(ClientModel *model)
{
if(model)
{
- QString version = model->formatFullVersion();
+ QString version = tr("Bitcoin Core") + " " + tr("version") + " " + model->formatFullVersion();
/* On x86 add a bit specifier to the version so that users can distinguish between
* 32 and 64 bit builds. On other architectures, 32/64 bit may be more ambigious.
*/
@@ -42,7 +40,17 @@ void AboutDialog::setModel(ClientModel *model)
#elif defined(__i386__ )
version += " " + tr("(%1-bit)").arg(32);
#endif
- ui->versionLabel->setText(version);
+
+ /// HTML-format the license message from the core
+ QString licenseInfo = QString::fromStdString(LicenseInfo());
+ // Make URLs clickable
+ QRegExp uri("<(.*)>", Qt::CaseSensitive, QRegExp::RegExp2);
+ uri.setMinimal(true); // use non-greedy matching
+ licenseInfo = licenseInfo.replace(uri, "<a href=\"\\1\">\\1</a>");
+ // Replace newlines with HTML breaks
+ licenseInfo = licenseInfo.replace("\n\n", "<br><br>");
+
+ ui->versionLabel->setText(version + "<br><br>" + licenseInfo);
}
}
@@ -81,7 +89,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool versionOnly) :
// Set help message text
if(versionOnly)
- ui->helpMessageLabel->setText(version);
+ ui->helpMessageLabel->setText(version + "\n" + QString::fromStdString(LicenseInfo()));
else
ui->helpMessageLabel->setText(version + "\n" + header + "\n" + coreOptions + "\n" + uiOptions);
}