parent
f45adb5619
commit
fb8d46d44b
@ -44,13 +44,13 @@ Development
|
||||
The Dash Core repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||
|
||||
- [Developer Notes](developer-notes.md)
|
||||
- [Multiwallet Qt Development](multiwallet-qt.md)
|
||||
- [Release Notes](release-notes.md)
|
||||
- [Release Process](release-process.md)
|
||||
- Source Code Documentation ***TODO***
|
||||
- [Translation Process](translation_process.md)
|
||||
- [Translation Strings Policy](translation_strings_policy.md)
|
||||
- [Unit Tests](unit-tests.md)
|
||||
- [Travis CI](travis-ci.md)
|
||||
- [Unauthenticated REST Interface](REST-interface.md)
|
||||
- [Shared Libraries](shared-libraries.md)
|
||||
- [BIPS](bips.md)
|
||||
@ -64,11 +64,13 @@ The Dash Core repo's [root README](/README.md) contains relevant information on
|
||||
### Miscellaneous
|
||||
- [Assets Attribution](assets-attribution.md)
|
||||
- [Files](files.md)
|
||||
- [Reduce Traffic](reduce-traffic.md)
|
||||
- [Tor Support](tor.md)
|
||||
- [Init Scripts (systemd/upstart/openrc)](init.md)
|
||||
- [ZMQ](zmq.md)
|
||||
|
||||
License
|
||||
---------------------
|
||||
Distributed under the [MIT software license](http://www.opensource.org/licenses/mit-license.php).
|
||||
Distributed under the [MIT software license](/COPYING).
|
||||
This product includes software developed by the OpenSSL Project for use in the [OpenSSL Toolkit](https://www.openssl.org/). This product includes
|
||||
cryptographic software written by Eric Young ([eay@cryptsoft.com](mailto:eay@cryptsoft.com)), and UPnP software written by Thomas Bernard.
|
||||
|
@ -1,48 +0,0 @@
|
||||
Multiwallet Qt Development and Integration Strategy
|
||||
===================================================
|
||||
|
||||
In order to support loading of multiple wallets in bitcoin-qt, a few changes in the UI architecture will be needed.
|
||||
Fortunately, only four of the files in the existing project are affected by this change.
|
||||
|
||||
Two new classes have been implemented in two new .h/.cpp file pairs, with much of the functionality that was previously
|
||||
implemented in the BitcoinGUI class moved over to these new classes.
|
||||
|
||||
The two existing files most affected, by far, are bitcoingui.h and bitcoingui.cpp, as the BitcoinGUI class will require
|
||||
some major retrofitting.
|
||||
|
||||
Only requiring some minor changes is dash.cpp.
|
||||
|
||||
Finally, two new headers and source files will have to be added to bitcoin-qt.pro.
|
||||
|
||||
Changes to class BitcoinGUI
|
||||
---------------------------
|
||||
The principal change to the BitcoinGUI class concerns the QStackedWidget instance called centralWidget.
|
||||
This widget owns five page views: overviewPage, transactionsPage, addressBookPage, receiveCoinsPage, and sendCoinsPage.
|
||||
|
||||
A new class called *WalletView* inheriting from QStackedWidget has been written to handle all renderings and updates of
|
||||
these page views. In addition to owning these five page views, a WalletView also has a pointer to a WalletModel instance.
|
||||
This allows the construction of multiple WalletView objects, each rendering a distinct wallet.
|
||||
|
||||
A second class called *WalletFrame* inheriting from QFrame has been written as a container for embedding all wallet-related
|
||||
controls into BitcoinGUI. At present it contains the WalletView instances for the wallets and does little more than passing on messages
|
||||
from BitcoinGUI to the currently selected WalletView. It is a WalletFrame instance
|
||||
that takes the place of what used to be centralWidget in BitcoinGUI. The purpose of this class is to allow future
|
||||
refinements of the wallet controls with minimal need for further modifications to BitcoinGUI, thus greatly simplifying
|
||||
merges while reducing the risk of breaking top-level stuff.
|
||||
|
||||
Changes to dash.cpp
|
||||
----------------------
|
||||
dash.cpp is the entry point into bitcoin-qt, and as such, will require some minor modifications to provide hooks for
|
||||
multiple wallet support. Most importantly will be the way it instantiates WalletModels and passes them to the
|
||||
singleton BitcoinGUI instance called window. Formerly, BitcoinGUI kept a pointer to a single instance of a WalletModel.
|
||||
The initial change required is very simple: rather than calling `window.setWalletModel(&walletModel);` we perform the
|
||||
following two steps:
|
||||
|
||||
window.addWallet("~Default", &walletModel);
|
||||
window.setCurrentWallet("~Default");
|
||||
|
||||
The string parameter is just an arbitrary name given to the default wallet. It's been prepended with a tilde to avoid name collisions in the future with additional wallets.
|
||||
|
||||
The shutdown call `window.setWalletModel(0)` has also been removed. In its place is now:
|
||||
|
||||
window.removeAllWallets();
|
@ -643,7 +643,7 @@ git merge commit are mentioned.
|
||||
- #8041 `5b736dd` Fix bip9-softforks blockstore issue (MarcoFalke)
|
||||
- #7994 `1f01443` Add op csv tests to script_tests.json (Christewart)
|
||||
- #8038 `e2bf830` Various minor fixes (MarcoFalke)
|
||||
- #8072 `1b87e5b` Travis: 'make check' in parallel and verbose (MarcoFalke)
|
||||
- #8072 `1b87e5b` Travis: 'make check' in parallel and verbose (theuni)
|
||||
- #8056 `8844ef1` Remove hardcoded "4 nodes" from test_framework (MarcoFalke)
|
||||
- #8047 `37f9a1f` Test_framework: Set wait-timeout for bitcoind procs (MarcoFalke)
|
||||
- #8095 `6700cc9` Test framework: only cleanup on successful test runs (sdaftuar)
|
||||
|
@ -1,5 +1,8 @@
|
||||
Travis CI
|
||||
=========
|
||||
|
||||
Support for using travis-ci has been added in order to automate pull-testing.
|
||||
See https://travis-ci.org/ for more info
|
||||
See [travis-ci.org](https://travis-ci.org/) for more info
|
||||
|
||||
This procedure is different than the pull-tester that came before it in a few
|
||||
ways.
|
||||
@ -7,7 +10,7 @@ ways.
|
||||
There is nothing to administer. This is a major feature as it means
|
||||
that builds have no local state. Because there is no ability to login to the
|
||||
builders to install packages (tools, dependencies, etc), the entire build
|
||||
procedure must instead be controlled by a declarative script (.travis.yml).
|
||||
procedure must instead be controlled by a declarative script `.travis.yml`.
|
||||
This script declares each build configuration, creates virtual machines as
|
||||
necessary, builds, then discards the virtual machines.
|
||||
|
||||
@ -16,7 +19,7 @@ than a single pass/fail. This helps to catch build failures and logic errors
|
||||
that present on platforms other than the ones the author has tested. This
|
||||
matrix is defined in the build script and can be changed at any time.
|
||||
|
||||
All builders use the dependency-generator in the depends dir, rather than
|
||||
All builders use the dependency-generator in the [depends dir](/depends), rather than
|
||||
using apt-get to install build dependencies. This guarantees that the tester
|
||||
is using the same versions as Gitian, so the build results are nearly identical
|
||||
to what would be found in a final release. However, this also means that builds
|
@ -77,6 +77,8 @@ const std::string BitcoinGUI::DEFAULT_UIPLATFORM =
|
||||
#endif
|
||||
;
|
||||
|
||||
/** Display name for default wallet name. Uses tilde to avoid name
|
||||
* collisions in the future with additional wallets */
|
||||
const QString BitcoinGUI::DEFAULT_WALLET = "~Default";
|
||||
|
||||
BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *networkStyle, QWidget *parent) :
|
||||
|
@ -19,6 +19,13 @@ QT_BEGIN_NAMESPACE
|
||||
class QStackedWidget;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
/**
|
||||
* A container for embedding all wallet-related
|
||||
* controls into BitcoinGUI. The purpose of this class is to allow future
|
||||
* refinements of the wallet controls with minimal need for further
|
||||
* modifications to BitcoinGUI, thus greatly simplifying merges while
|
||||
* reducing the risk of breaking top-level stuff.
|
||||
*/
|
||||
class WalletFrame : public QFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
|
Loading…
Reference in New Issue
Block a user