aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am18
-rw-r--r--src/Makefile.include15
-rw-r--r--src/m4/bitcoin_qt.m436
-rw-r--r--src/qt/Makefile.am9
-rw-r--r--src/qt/aboutdialog.cpp38
-rw-r--r--src/qt/aboutdialog.h34
-rw-r--r--src/qt/bitcoin.cpp17
-rw-r--r--src/qt/bitcoingui.cpp2
-rw-r--r--src/qt/forms/aboutdialog.ui16
-rw-r--r--src/qt/forms/helpmessagedialog.ui128
-rw-r--r--src/qt/guiutil.cpp41
-rw-r--r--src/qt/guiutil.h20
-rw-r--r--src/qt/rpcconsole.cpp5
-rw-r--r--src/qt/utilitydialog.cpp125
-rw-r--r--src/qt/utilitydialog.h69
-rw-r--r--src/rpcdump.cpp5
16 files changed, 389 insertions, 189 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 9917be248..f27f16ab9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,6 @@
include Makefile.include
-AM_CPPFLAGS += -I$(top_srcdir)/src/leveldb/helpers/memenv \
- -I$(builddir)
+AM_CPPFLAGS += -I$(builddir)
noinst_LIBRARIES = \
libbitcoin_server.a \
@@ -11,7 +10,15 @@ if ENABLE_WALLET
noinst_LIBRARIES += libbitcoin_wallet.a
endif
-bin_PROGRAMS = bitcoind bitcoin-cli
+bin_PROGRAMS =
+
+if BUILD_BITCOIND
+ bin_PROGRAMS += bitcoind
+endif
+
+if BUILD_BITCOIN_CLI
+ bin_PROGRAMS += bitcoin-cli
+endif
SUBDIRS = . $(BUILD_QT) $(BUILD_TEST)
DIST_SUBDIRS = . qt test
@@ -140,8 +147,8 @@ bitcoind_LDADD = \
libbitcoin_server.a \
libbitcoin_cli.a \
libbitcoin_common.a \
- leveldb/libleveldb.a \
- leveldb/libmemenv.a
+ $(LIBLEVELDB) \
+ $(LIBMEMENV)
if ENABLE_WALLET
bitcoind_LDADD += libbitcoin_wallet.a
endif
@@ -167,6 +174,7 @@ if TARGET_WINDOWS
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
endif
+# NOTE: This dependency is not strictly necessary, but without it make may try to build both in parallel, which breaks the LevelDB build system in a race
leveldb/libleveldb.a: leveldb/libmemenv.a
leveldb/%.a:
diff --git a/src/Makefile.include b/src/Makefile.include
index b9e6c262c..01b47d1aa 100644
--- a/src/Makefile.include
+++ b/src/Makefile.include
@@ -1,23 +1,30 @@
+if EMBEDDED_LEVELDB
+LEVELDB_CPPFLAGS += -I$(top_srcdir)/src/leveldb/include
+LEVELDB_CPPFLAGS += -I$(top_srcdir)/src/leveldb/helpers/memenv
+LIBLEVELDB += $(top_builddir)/src/leveldb/libleveldb.a
+LIBMEMENV += $(top_builddir)/src/leveldb/libmemenv.a
+endif
+
AM_CPPFLAGS = $(INCLUDES) \
-I$(top_builddir)/src/obj \
- -I$(top_srcdir)/src/leveldb/include \
$(BDB_CPPFLAGS) \
- $(BOOST_INCLUDES)
+ $(BOOST_CPPFLAGS) $(BOOST_INCLUDES)
+AM_CPPFLAGS += $(LEVELDB_CPPFLAGS)
AM_LDFLAGS = $(PTHREAD_CFLAGS)
LIBBITCOIN_SERVER=$(top_builddir)/src/libbitcoin_server.a
LIBBITCOIN_WALLET=$(top_builddir)/src/libbitcoin_wallet.a
LIBBITCOIN_COMMON=$(top_builddir)/src/libbitcoin_common.a
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
$(LIBBITCOIN):
$(MAKE) -C $(top_builddir)/src $(@F)
+if EMBEDDED_LEVELDB
$(LIBLEVELDB) $(LIBMEMENV):
$(MAKE) -C $(top_builddir)/src leveldb/$(@F)
+endif
$(LIBBITCOINQT):
$(MAKE) -C $(top_builddir)/src/qt $(@F)
diff --git a/src/m4/bitcoin_qt.m4 b/src/m4/bitcoin_qt.m4
index 758aea349..5ed969218 100644
--- a/src/m4/bitcoin_qt.m4
+++ b/src/m4/bitcoin_qt.m4
@@ -22,7 +22,7 @@ AC_DEFUN([BITCOIN_QT_CHECK],[
])
dnl BITCOIN_QT_PATH_PROGS([FOO], [foo foo2], [/path/to/search/first], [continue if missing])
-dnl Helper for finding the path of programs needed for QT.
+dnl Helper for finding the path of programs needed for Qt.
dnl Inputs: $1: Variable to be set
dnl Inputs: $2: List of programs to search for
dnl Inputs: $3: Look for $2 here before $PATH
@@ -47,9 +47,9 @@ dnl input variables are set correctly.
dnl CAUTION: Do not use this inside of a conditional.
AC_DEFUN([BITCOIN_QT_INIT],[
dnl enable qt support
- AC_ARG_WITH([qt],
- [AS_HELP_STRING([--with-qt],
- [with qt (no|qt4|qt5|auto. default is auto, qt4 tried first.)])],
+ AC_ARG_WITH([gui],
+ [AS_HELP_STRING([--with-gui],
+ [with GUI (no|qt4|qt5|auto. default is auto, qt4 tried first.)])],
[
bitcoin_qt_want_version=$withval
if test x$bitcoin_qt_want_version = xyes; then
@@ -59,10 +59,10 @@ AC_DEFUN([BITCOIN_QT_INIT],[
],
[bitcoin_qt_want_version=auto])
- AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-qt-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])
- AC_ARG_WITH([qt-libdir],[AS_HELP_STRING([--with-qt-libdir=LIB_DIR],[specify qt lib path (overridden by pkgconfig)])], [qt_lib_path=$withval], [])
- AC_ARG_WITH([qt-plugindir],[AS_HELP_STRING([--with-qt-plugindir=PLUGIN_DIR],[specify qt plugin path (overridden by pkgconfig)])], [qt_plugin_path=$withval], [])
- AC_ARG_WITH([qt-bindir],[AS_HELP_STRING([--with-qt-bindir=BIN_DIR],[specify qt bin path])], [qt_bin_path=$withval], [])
+ AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-gui-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])
+ AC_ARG_WITH([qt-libdir],[AS_HELP_STRING([--with-gui-libdir=LIB_DIR],[specify qt lib path (overridden by pkgconfig)])], [qt_lib_path=$withval], [])
+ AC_ARG_WITH([qt-plugindir],[AS_HELP_STRING([--with-gui-plugindir=PLUGIN_DIR],[specify qt plugin path (overridden by pkgconfig)])], [qt_plugin_path=$withval], [])
+ AC_ARG_WITH([qt-bindir],[AS_HELP_STRING([--with-gui-bindir=BIN_DIR],[specify qt bin path])], [qt_bin_path=$withval], [])
AC_ARG_WITH([qtdbus],
[AS_HELP_STRING([--with-qtdbus],
@@ -73,7 +73,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[
dnl Find the appropriate version of Qt libraries and includes.
dnl Inputs: $1: Whether or not pkg-config should be used. yes|no. Default: yes.
-dnl Inputs: $2: If $1 is "yes" and --with-qt=auto, which qt version should be
+dnl Inputs: $2: If $1 is "yes" and --with-gui=auto, which qt version should be
dnl tried first.
dnl Outputs: See _BITCOIN_QT_FIND_LIBS_*
dnl Outputs: Sets variables for all qt-related tools.
@@ -113,7 +113,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
dnl enable qt support
- AC_MSG_CHECKING(if QT should be enabled)
+ AC_MSG_CHECKING(whether to build Bitcoin Core GUI)
BITCOIN_QT_CHECK([
bitcoin_enable_qt=yes
bitcoin_enable_qt_test=yes
@@ -149,11 +149,11 @@ dnl All macros below are internal and should _not_ be used from the main
dnl configure.ac.
dnl ----
-dnl Internal. Check if the included version of QT is Qt5.
+dnl Internal. Check if the included version of Qt is Qt5.
dnl Requires: INCLUDES must be populated as necessary.
dnl Output: bitcoin_cv_qt5=yes|no
AC_DEFUN([_BITCOIN_QT_CHECK_QT5],[
- AC_CACHE_CHECK(for QT 5, bitcoin_cv_qt5,[
+ AC_CACHE_CHECK(for Qt 5, bitcoin_cv_qt5,[
AC_TRY_COMPILE(
[#include <QtCore>],
[
@@ -167,13 +167,13 @@ AC_DEFUN([_BITCOIN_QT_CHECK_QT5],[
bitcoin_cv_qt5=no)
])])
-dnl Internal. Check if the linked version of QT was built as static libs.
+dnl Internal. Check if the linked version of Qt was built as static libs.
dnl Requires: Qt5. This check cannot determine if Qt4 is static.
dnl Requires: INCLUDES and LIBS must be populated as necessary.
dnl Output: bitcoin_cv_static_qt=yes|no
dnl Output: Defines QT_STATICPLUGIN if plugins are static.
AC_DEFUN([_BITCOIN_QT_IS_STATIC],[
- AC_CACHE_CHECK(for static QT, bitcoin_cv_static_qt,[
+ AC_CACHE_CHECK(for static Qt, bitcoin_cv_static_qt,[
AC_TRY_COMPILE(
[#include <QtCore>],
[
@@ -187,7 +187,7 @@ AC_DEFUN([_BITCOIN_QT_IS_STATIC],[
[bitcoin_cv_static_qt=no])
])
if test xbitcoin_cv_static_qt = xyes; then
- AC_DEFINE(QT_STATICPLUGIN, 1, [Define this symbol for static QT plugins])
+ AC_DEFINE(QT_STATICPLUGIN, 1, [Define this symbol for static Qt plugins])
fi
])
@@ -197,7 +197,7 @@ dnl Inputs: $1: A series of Q_IMPORT_PLUGIN().
dnl Inputs: $2: The libraries that resolve $1.
dnl Output: QT_LIBS is prepended or configure exits.
AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_PLUGINS],[
- AC_MSG_CHECKING(for static QT plugins: $2)
+ AC_MSG_CHECKING(for static Qt plugins: $2)
CHECK_STATIC_PLUGINS_TEMP_LIBS="$LIBS"
LIBS="$2 $QT_LIBS $LIBS"
AC_TRY_LINK([
@@ -211,7 +211,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_PLUGINS],[
])
dnl Internal. Find Qt libraries using pkg-config.
-dnl Inputs: bitcoin_qt_want_version (from --with-qt=). The version to check
+dnl Inputs: bitcoin_qt_want_version (from --with-gui=). The version to check
dnl first.
dnl Inputs: $1: If bitcoin_qt_want_version is "auto", check for this version
dnl first.
@@ -265,7 +265,7 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITH_PKGCONFIG],[
dnl Internal. Find Qt libraries without using pkg-config. Version is deduced
dnl from the discovered headers.
-dnl Inputs: bitcoin_qt_want_version (from --with-qt=). The version to use.
+dnl Inputs: bitcoin_qt_want_version (from --with-gui=). The version to use.
dnl If "auto", the version will be discovered by _BITCOIN_QT_CHECK_QT5.
dnl Outputs: All necessary QT_* variables are set.
dnl Outputs: bitcoin_qt_got_major_vers is set to "4" or "5".
diff --git a/src/qt/Makefile.am b/src/qt/Makefile.am
index 274cebcf3..cac603966 100644
--- a/src/qt/Makefile.am
+++ b/src/qt/Makefile.am
@@ -80,6 +80,7 @@ QT_FORMS_UI = \
forms/askpassphrasedialog.ui \
forms/coincontroldialog.ui \
forms/editaddressdialog.ui \
+ forms/helpmessagedialog.ui \
forms/intro.ui \
forms/openuridialog.ui \
forms/optionsdialog.ui \
@@ -93,7 +94,6 @@ QT_FORMS_UI = \
forms/transactiondescdialog.ui
QT_MOC_CPP = \
- moc_aboutdialog.cpp \
moc_addressbookpage.cpp \
moc_addresstablemodel.cpp \
moc_askpassphrasedialog.cpp \
@@ -133,6 +133,7 @@ QT_MOC_CPP = \
moc_transactionfilterproxy.cpp \
moc_transactiontablemodel.cpp \
moc_transactionview.cpp \
+ moc_utilitydialog.cpp \
moc_walletframe.cpp \
moc_walletmodel.cpp \
moc_walletview.cpp
@@ -155,7 +156,6 @@ PROTOBUF_H = paymentrequest.pb.h
PROTOBUF_PROTO = paymentrequest.proto
BITCOIN_QT_H = \
- aboutdialog.h \
addressbookpage.h \
addresstablemodel.h \
askpassphrasedialog.h \
@@ -198,6 +198,7 @@ BITCOIN_QT_H = \
transactionrecord.h \
transactiontablemodel.h \
transactionview.h \
+ utilitydialog.h \
walletframe.h \
walletmodel.h \
walletmodeltransaction.h \
@@ -248,7 +249,6 @@ RES_ICONS = \
res/icons/tx_mined.png
BITCOIN_QT_CPP = \
- aboutdialog.cpp \
bitcoin.cpp \
bitcoinaddressvalidator.cpp \
bitcoinamountfield.cpp \
@@ -267,7 +267,8 @@ BITCOIN_QT_CPP = \
rpcconsole.cpp \
signverifymessagedialog.cpp \
splashscreen.cpp \
- trafficgraphwidget.cpp
+ trafficgraphwidget.cpp \
+ utilitydialog.cpp
if ENABLE_WALLET
BITCOIN_QT_CPP += \
diff --git a/src/qt/aboutdialog.cpp b/src/qt/aboutdialog.cpp
deleted file mode 100644
index 6581a19c1..000000000
--- a/src/qt/aboutdialog.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2011-2013 The Bitcoin developers
-// Distributed under the MIT/X11 software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#include "aboutdialog.h"
-#include "ui_aboutdialog.h"
-
-#include "clientmodel.h"
-
-#include "clientversion.h"
-
-AboutDialog::AboutDialog(QWidget *parent) :
- QDialog(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)
- {
- ui->versionLabel->setText(model->formatFullVersion());
- }
-}
-
-AboutDialog::~AboutDialog()
-{
- delete ui;
-}
-
-void AboutDialog::on_buttonBox_accepted()
-{
- close();
-}
diff --git a/src/qt/aboutdialog.h b/src/qt/aboutdialog.h
deleted file mode 100644
index 1b131c4dc..000000000
--- a/src/qt/aboutdialog.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2011-2013 The Bitcoin developers
-// Distributed under the MIT/X11 software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#ifndef ABOUTDIALOG_H
-#define ABOUTDIALOG_H
-
-#include <QDialog>
-
-class ClientModel;
-
-namespace Ui {
- class AboutDialog;
-}
-
-/** "About" dialog box */
-class AboutDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit AboutDialog(QWidget *parent);
- ~AboutDialog();
-
- void setModel(ClientModel *model);
-
-private:
- Ui::AboutDialog *ui;
-
-private slots:
- void on_buttonBox_accepted();
-};
-
-#endif // ABOUTDIALOG_H
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 3cf7e53c0..848e50deb 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -14,6 +14,7 @@
#include "intro.h"
#include "optionsmodel.h"
#include "splashscreen.h"
+#include "utilitydialog.h"
#ifdef ENABLE_WALLET
#include "paymentserver.h"
#include "walletmodel.h"
@@ -36,8 +37,6 @@
#include <QTimer>
#include <QTranslator>
#include <QThread>
-#include <QVBoxLayout>
-#include <QLabel>
#if defined(QT_STATICPLUGIN)
#include <QtPlugin>
@@ -356,17 +355,7 @@ void BitcoinApplication::requestShutdown()
clientModel = 0;
// Show a simple window indicating shutdown status
- QWidget *shutdownWindow = new QWidget();
- QVBoxLayout *layout = new QVBoxLayout();
- layout->addWidget(new QLabel(
- tr("Bitcoin Core is shutting down...") + "<br /><br />" +
- tr("Do not shut down the computer until this window disappears.")));
- shutdownWindow->setLayout(layout);
-
- // Center shutdown window at where main window was
- const QPoint global = window->mapToGlobal(window->rect().center());
- shutdownWindow->move(global.x() - shutdownWindow->width() / 2, global.y() - shutdownWindow->height() / 2);
- shutdownWindow->show();
+ ShutdownWindow::showShutdownWindow(window);
// Request shutdown from core thread
emit requestedShutdown();
@@ -503,7 +492,7 @@ int main(int argc, char *argv[])
// but before showing splash screen.
if (mapArgs.count("-?") || mapArgs.count("--help"))
{
- GUIUtil::HelpMessageBox help;
+ HelpMessageDialog help(NULL);
help.showOrPrint();
return 1;
}
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 692fb6dc1..1008ef2b0 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -4,7 +4,6 @@
#include "bitcoingui.h"
-#include "aboutdialog.h"
#include "bitcoinunits.h"
#include "clientmodel.h"
#include "guiconstants.h"
@@ -14,6 +13,7 @@
#include "optionsdialog.h"
#include "optionsmodel.h"
#include "rpcconsole.h"
+#include "utilitydialog.h"
#ifdef ENABLE_WALLET
#include "walletframe.h"
#include "walletmodel.h"
diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui
index 10a5857ca..3ab4675bf 100644
--- a/src/qt/forms/aboutdialog.ui
+++ b/src/qt/forms/aboutdialog.ui
@@ -160,12 +160,12 @@ This product includes software developed by the OpenSSL Project for use in the O
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
- <x>360</x>
- <y>308</y>
+ <x>20</x>
+ <y>20</y>
</hint>
<hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
+ <x>20</x>
+ <y>20</y>
</hint>
</hints>
</connection>
@@ -176,12 +176,12 @@ This product includes software developed by the OpenSSL Project for use in the O
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
- <x>428</x>
- <y>308</y>
+ <x>20</x>
+ <y>20</y>
</hint>
<hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
+ <x>20</x>
+ <y>20</y>
</hint>
</hints>
</connection>
diff --git a/src/qt/forms/helpmessagedialog.ui b/src/qt/forms/helpmessagedialog.ui
new file mode 100644
index 000000000..f68fea7e6
--- /dev/null
+++ b/src/qt/forms/helpmessagedialog.ui
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HelpMessageDialog</class>
+ <widget class="QDialog" name="HelpMessageDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>800</width>
+ <height>400</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="windowTitle">
+ <string>Bitcoin Core - Command-line options</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="graphic">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Ignored">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../bitcoin.qrc">:/images/about</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOn</enum>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>659</width>
+ <height>348</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="helpMessageLabel">
+ <property name="font">
+ <font>
+ <family>Terminal</family>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="okButton">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>accepted()</signal>
+ <receiver>HelpMessageDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>okButton</sender>
+ <signal>rejected()</signal>
+ <receiver>HelpMessageDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
index b87498402..2d8a6afe2 100644
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -591,47 +591,6 @@ void restoreWindowGeometry(const QString& strSetting, const QSize& defaultSize,
parent->move(pos);
}
-HelpMessageBox::HelpMessageBox(QWidget *parent) :
- QMessageBox(parent)
-{
- header = tr("Bitcoin Core") + " " + tr("version") + " " +
- QString::fromStdString(FormatFullVersion()) + "\n\n" +
- tr("Usage:") + "\n" +
- " bitcoin-qt [" + tr("command-line options") + "] " + "\n";
-
- coreOptions = QString::fromStdString(HelpMessage(HMM_BITCOIN_QT));
-
- uiOptions = tr("UI options") + ":\n" +
- " -lang=<lang> " + tr("Set language, for example \"de_DE\" (default: system locale)") + "\n" +
- " -min " + tr("Start minimized") + "\n" +
- " -splash " + tr("Show splash screen on startup (default: 1)") + "\n" +
- " -choosedatadir " + tr("Choose data directory on startup (default: 0)") + "\n";
-
- setWindowTitle(tr("Bitcoin Core"));
- setTextFormat(Qt::PlainText);
- // setMinimumWidth is ignored for QMessageBox so put in non-breaking spaces to make it wider.
- setText(header + QString(QChar(0x2003)).repeated(50));
- setDetailedText(coreOptions + "\n" + uiOptions);
-}
-
-void HelpMessageBox::printToConsole()
-{
- // On other operating systems, the expected action is to print the message to the console.
- QString strUsage = header + "\n" + coreOptions + "\n" + uiOptions;
- fprintf(stdout, "%s", strUsage.toStdString().c_str());
-}
-
-void HelpMessageBox::showOrPrint()
-{
-#if defined(WIN32)
- // On Windows, show a message box, as there is no stderr/stdout in windowed applications
- exec();
-#else
- // On other operating systems, print help text to console
- printToConsole();
-#endif
-}
-
void setClipboard(const QString& str)
{
QApplication::clipboard()->setText(str, QClipboard::Clipboard);
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
index 14d4ff17c..c894850a9 100644
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -123,26 +123,6 @@ namespace GUIUtil
/** Restore window size and position */
void restoreWindowGeometry(const QString& strSetting, const QSize &defaultSizeIn, QWidget *parent);
- /** Help message for Bitcoin-Qt, shown with --help. */
- class HelpMessageBox : public QMessageBox
- {
- Q_OBJECT
-
- public:
- HelpMessageBox(QWidget *parent = 0);
-
- /** Show message box or print help message to standard output, based on operating system. */
- void showOrPrint();
-
- /** Print help message to console */
- void printToConsole();
-
- private:
- QString header;
- QString coreOptions;
- QString uiOptions;
- };
-
} // namespace GUIUtil
#endif // GUIUTIL_H
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp
index a8470572d..abb6ceb13 100644
--- a/src/qt/rpcconsole.cpp
+++ b/src/qt/rpcconsole.cpp
@@ -7,6 +7,7 @@
#include "clientmodel.h"
#include "guiutil.h"
+#include "utilitydialog.h"
#include "rpcserver.h"
#include "rpcclient.h"
@@ -443,8 +444,8 @@ void RPCConsole::scrollToEnd()
void RPCConsole::on_showCLOptionsButton_clicked()
{
- GUIUtil::HelpMessageBox help;
- help.exec();
+ HelpMessageDialog *help = new HelpMessageDialog(this);
+ help->show();
}
void RPCConsole::on_sldGraphRange_valueChanged(int value)
diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp
new file mode 100644
index 000000000..05a01c744
--- /dev/null
+++ b/src/qt/utilitydialog.cpp
@@ -0,0 +1,125 @@
+// Copyright (c) 2011-2014 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#include "utilitydialog.h"
+
+#include "ui_aboutdialog.h"
+#include "ui_helpmessagedialog.h"
+
+#include "bitcoingui.h"
+#include "clientmodel.h"
+#include "guiutil.h"
+
+#include "clientversion.h"
+#include "init.h"
+#include "util.h"
+
+#include <QLabel>
+#include <QVBoxLayout>
+
+/** "About" dialog box */
+AboutDialog::AboutDialog(QWidget *parent) :
+ QDialog(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)
+ {
+ ui->versionLabel->setText(model->formatFullVersion());
+ }
+}
+
+AboutDialog::~AboutDialog()
+{
+ delete ui;
+}
+
+void AboutDialog::on_buttonBox_accepted()
+{
+ close();
+}
+
+/** "Help message" dialog box */
+HelpMessageDialog::HelpMessageDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::HelpMessageDialog)
+{
+ ui->setupUi(this);
+ GUIUtil::restoreWindowGeometry("nHelpMessageDialogWindow", this->size(), this);
+
+ header = tr("Bitcoin Core") + " " + tr("version") + " " +
+ QString::fromStdString(FormatFullVersion()) + "\n\n" +
+ tr("Usage:") + "\n" +
+ " bitcoin-qt [" + tr("command-line options") + "] " + "\n";
+
+ coreOptions = QString::fromStdString(HelpMessage(HMM_BITCOIN_QT));
+
+ uiOptions = tr("UI options") + ":\n" +
+ " -lang=<lang> " + tr("Set language, for example \"de_DE\" (default: system locale)") + "\n" +
+ " -min " + tr("Start minimized") + "\n" +
+ " -splash " + tr("Show splash screen on startup (default: 1)") + "\n" +
+ " -choosedatadir " + tr("Choose data directory on startup (default: 0)");
+
+ ui->helpMessageLabel->setFont(GUIUtil::bitcoinAddressFont());
+
+ // Set help message text
+ ui->helpMessageLabel->setText(header + "\n" + coreOptions + "\n" + uiOptions);
+}
+
+HelpMessageDialog::~HelpMessageDialog()
+{
+ GUIUtil::saveWindowGeometry("nHelpMessageDialogWindow", this);
+ delete ui;
+}
+
+void HelpMessageDialog::printToConsole()
+{
+ // On other operating systems, the expected action is to print the message to the console.
+ QString strUsage = header + "\n" + coreOptions + "\n" + uiOptions;
+ fprintf(stdout, "%s", strUsage.toStdString().c_str());
+}
+
+void HelpMessageDialog::showOrPrint()
+{
+#if defined(WIN32)
+ // On Windows, show a message box, as there is no stderr/stdout in windowed applications
+ exec();
+#else
+ // On other operating systems, print help text to console
+ printToConsole();
+#endif
+}
+
+void HelpMessageDialog::on_okButton_accepted()
+{
+ close();
+}
+
+
+/** "Shutdown" window */
+void ShutdownWindow::showShutdownWindow(BitcoinGUI *window)
+{
+ if (!window)
+ return;
+
+ // Show a simple window indicating shutdown status
+ QWidget *shutdownWindow = new QWidget();
+ QVBoxLayout *layout = new QVBoxLayout();
+ layout->addWidget(new QLabel(
+ tr("Bitcoin Core is shutting down...") + "<br /><br />" +
+ tr("Do not shut down the computer until this window disappears.")));
+ shutdownWindow->setLayout(layout);
+
+ // Center shutdown window at where main window was
+ const QPoint global = window->mapToGlobal(window->rect().center());
+ shutdownWindow->move(global.x() - shutdownWindow->width() / 2, global.y() - shutdownWindow->height() / 2);
+ shutdownWindow->show();
+}
diff --git a/src/qt/utilitydialog.h b/src/qt/utilitydialog.h
new file mode 100644
index 000000000..874daf6a7
--- /dev/null
+++ b/src/qt/utilitydialog.h
@@ -0,0 +1,69 @@
+// Copyright (c) 2011-2014 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef UTILITYDIALOG_H
+#define UTILITYDIALOG_H
+
+#include <QDialog>
+#include <QObject>
+
+class BitcoinGUI;
+class ClientModel;
+
+namespace Ui {
+ class AboutDialog;
+ class HelpMessageDialog;
+}
+
+/** "About" dialog box */
+class AboutDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit AboutDialog(QWidget *parent);
+ ~AboutDialog();
+
+ void setModel(ClientModel *model);
+
+private:
+ Ui::AboutDialog *ui;
+
+private slots:
+ void on_buttonBox_accepted();
+};
+
+/** "Help message" dialog box */
+class HelpMessageDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit HelpMessageDialog(QWidget *parent);
+ ~HelpMessageDialog();
+
+ void printToConsole();
+ void showOrPrint();
+
+private:
+ Ui::HelpMessageDialog *ui;
+ QString header;
+ QString coreOptions;
+ QString uiOptions;
+
+private slots:
+ void on_okButton_accepted();
+};
+
+
+/** "Shutdown" window */
+class ShutdownWindow : public QObject
+{
+ Q_OBJECT
+
+public:
+ static void showShutdownWindow(BitcoinGUI *window);
+};
+
+#endif // UTILITYDIALOG_H
diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp
index c801b284c..18c8bb6e6 100644
--- a/src/rpcdump.cpp
+++ b/src/rpcdump.cpp
@@ -116,9 +116,14 @@ Value importprivkey(const Array& params, bool fHelp)
if (pwalletMain->HaveKey(vchAddress))
return Value::null;
+ pwalletMain->mapKeyMetadata[vchAddress].nCreateTime = 1;
+
if (!pwalletMain->AddKeyPubKey(key, pubkey))
throw JSONRPCError(RPC_WALLET_ERROR, "Error adding key to wallet");
+ // whenever a key is imported, we need to scan the whole chain
+ pwalletMain->nTimeFirstKey = 1; // 0 would be considered 'no value'
+
if (fRescan) {
pwalletMain->ScanForWalletTransactions(chainActive.Genesis(), true);
pwalletMain->ReacceptWalletTransactions();