bitcoin/src/qt
fanquake 7f3675b3ce
Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog
af112ab628 qt: Rename SetPrune() to InitializePruneSetting() (Hennadii Stepanov)
b0bfbe5028 refactor: Drop `bool force' parameter (Hennadii Stepanov)
68c9bbe9bc qt: Force set nPruneSize in QSettings after intro (Hennadii Stepanov)
a82bd8fa57 util: Replace magics with DEFAULT_PRUNE_TARGET_GB (Hennadii Stepanov)

Pull request description:

  On master (5622d8f315), having `QSettings` set already
  ```
  $ grep nPruneSize ~/.config/Bitcoin/Bitcoin-Qt-testnet.conf
  nPruneSize=6
  ```

  enabling prune option in the intro dialog

  ```
  $ ./src/qt/bitcoin-qt -choosedatadir -testnet
  ```
  ![DeepinScreenshot_select-area_20191208120425](https://user-images.githubusercontent.com/32963518/70388183-eed68580-19b6-11ea-9aa1-f9ad9aaa68a6.png)

  has no effect:
  ```
  $ grep Prune ~/.bitcoin/testnet3/debug.log
  2019-12-08T10:04:41Z Prune configured to target 5722 MiB on disk for block and undo files.
  ```

  ---

  With this PR:
  ```
  $ grep Prune ~/.bitcoin/testnet3/debug.log
  2019-12-08T10:20:35Z Prune configured to target 1907 MiB on disk for block and undo files.
  ```

  This PR has been split of #17453 (the first two commits) as it fixes an orthogonal bug.

  Refs:
  - https://github.com/bitcoin/bitcoin/pull/17453#discussion_r345424240
  - https://github.com/bitcoin/bitcoin/pull/17453#discussion_r350960201

ACKs for top commit:
  Sjors:
    Code review re-ACK af112ab628
  ryanofsky:
    Code review ACK af112ab628. Just suggested changes since last review (thanks!)
  promag:
    Tested ACK af112ab628. Latest suggestions and changes look good to me.

Tree-SHA512: 8ddad34b30dcc2cdcad6678ba8a0b36fa176e4e3465862ef6eee9be0f98d8146705138c9c7995dd8c0990af41078ca743fef1a90ed9240081f052f32ddec72b9
2020-01-08 22:03:49 +08:00
..
forms qt: Normalize placeholder to avoid using "address book" in sendcoinsentry 2019-12-09 12:28:55 +01:00
locale qt: Periodic translations update 2019-09-30 09:41:11 +02:00
res scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
test test: Show debug log on unit test failure 2020-01-02 18:00:05 -05:00
addressbookpage.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
addressbookpage.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
addresstablemodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
addresstablemodel.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
askpassphrasedialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
askpassphrasedialog.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
bantablemodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
bantablemodel.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
bitcoin.cpp Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
bitcoin.h Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
bitcoin.qrc qt: Remove menu icons 2019-08-15 13:05:10 +02:00
bitcoin_locale.qrc Restore English translation option 2020-01-06 22:58:47 -05:00
bitcoinaddressvalidator.cpp
bitcoinaddressvalidator.h
bitcoinamountfield.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
bitcoinamountfield.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
bitcoingui.cpp gui: disable File->CreateWallet during startup 2019-12-07 15:32:05 -05:00
bitcoingui.h Add Create Wallet menu action 2019-09-05 20:36:57 -04:00
bitcoinstrings.cpp qt: Run "make translate" in ./src 2019-09-16 09:45:11 -04:00
bitcoinunits.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
bitcoinunits.h refactor: Remove unused defines in bitcoinunits.h 2020-01-04 13:16:38 +02:00
clientmodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
clientmodel.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
coincontroldialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
coincontroldialog.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
coincontroltreewidget.cpp
coincontroltreewidget.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
createwalletdialog.cpp gui: rename encrypt(), blank(), and askPasshprase() 2019-09-09 10:56:38 +02:00
createwalletdialog.h gui: rename encrypt(), blank(), and askPasshprase() 2019-09-09 10:56:38 +02:00
csvmodelwriter.cpp Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
csvmodelwriter.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
editaddressdialog.cpp Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
editaddressdialog.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
guiconstants.h Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
guiutil.cpp qt: Add LogQtInfo() function 2020-01-05 23:40:01 +02:00
guiutil.h Merge #17826: qt: Log Qt related info 2020-01-08 14:22:45 +01:00
intro.cpp Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
intro.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
macdockiconhandler.h
macdockiconhandler.mm qt: Replace objc_msgSend with native syntax 2019-08-31 12:25:34 +03:00
macnotificationhandler.h
macnotificationhandler.mm scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
macos_appnap.h
macos_appnap.mm
main.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
Makefile
modaloverlay.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
modaloverlay.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
networkstyle.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
networkstyle.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
notificator.cpp Remove misplaced Q_UNUSED and others enhancements 2018-12-20 01:06:37 +02:00
notificator.h Remove misplaced Q_UNUSED and others enhancements 2018-12-20 01:06:37 +02:00
openuridialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
openuridialog.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
optionsdialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
optionsdialog.h
optionsmodel.cpp Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
optionsmodel.h Merge #17696: qt: Force set nPruneSize in QSettings after the intro dialog 2020-01-08 22:03:49 +08:00
overviewpage.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
overviewpage.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
paymentserver.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
paymentserver.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
peertablemodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
peertablemodel.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
platformstyle.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
platformstyle.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
qrimagewidget.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
qrimagewidget.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
qvalidatedlineedit.cpp Replace remaining 0 with nullptr in Qt code 2019-01-13 03:25:14 -08:00
qvalidatedlineedit.h
qvaluecombobox.cpp
qvaluecombobox.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
README.md Remove BIP70 Support 2019-10-24 16:01:43 -04:00
receivecoinsdialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
receivecoinsdialog.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
receiverequestdialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
receiverequestdialog.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
recentrequeststablemodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
recentrequeststablemodel.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
rpcconsole.cpp gui: Make RPCConsole::TabTypes an enum class 2019-10-15 13:46:34 +01:00
rpcconsole.h gui: Make RPCConsole::TabTypes an enum class 2019-10-15 13:46:34 +01:00
sendcoinsdialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
sendcoinsdialog.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
sendcoinsentry.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
sendcoinsentry.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
sendcoinsrecipient.h refactor: Move SendCoinsRecipient in own header 2019-11-19 17:05:35 +02:00
signverifymessagedialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
signverifymessagedialog.h
splashscreen.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
splashscreen.h
trafficgraphwidget.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
trafficgraphwidget.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactiondesc.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactiondesc.h
transactiondescdialog.cpp
transactiondescdialog.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactionfilterproxy.cpp
transactionfilterproxy.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
transactionrecord.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactionrecord.h Don't label transactions "Open" while catching up 2019-01-03 00:10:24 +02:00
transactiontablemodel.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactiontablemodel.h Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2019-01-13 03:25:14 -08:00
transactionview.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
transactionview.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
utilitydialog.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
utilitydialog.h Replace remaining 0 with nullptr in Qt code 2019-01-13 03:25:14 -08:00
walletcontroller.cpp refactor: Cleanup headers from walletmodel.h 2019-11-19 17:05:35 +02:00
walletcontroller.h refactor: Cleanup headers from walletmodel.h 2019-11-19 17:05:35 +02:00
walletframe.cpp refactor: Remove unused signal 2019-11-17 05:45:07 +02:00
walletframe.h gui: Drop unused return values in WalletFrame 2019-02-22 16:26:09 +00:00
walletmodel.cpp [gui] watch-only wallet: copy PSBT to clipboard 2019-11-13 20:03:42 +01:00
walletmodel.h refactor: Move SendCoinsRecipient in own header 2019-11-19 17:05:35 +02:00
walletmodeltransaction.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
walletmodeltransaction.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
walletview.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
walletview.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
winshutdownmonitor.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
winshutdownmonitor.h

This directory contains the BitcoinQT graphical user interface (GUI). It uses the cross-platform framework Qt.

The current precise version for Qt 5 is specified in qt.mk.

Compile and run

See build instructions (macOS, Windows, Unix, etc).

To run:

./src/qt/bitcoin-qt

Files and directories

forms

Contains Designer UI files. They are created with Qt Creator, but can be edited using any text editor.

locale

Contains translations. They are periodically updated. The process is described here.

res

Resources such as the icon.

test

Tests.

bitcoingui.(h/cpp)

Represents the main window of the Bitcoin UI.

*model.(h/cpp)

The model. When it has a corresponding controller, it generally inherits from QAbstractTableModel. Models that are used by controllers as helpers inherit from other Qt classes like QValidator.

ClientModel is used by the main application bitcoingui and several models like peertablemodel.

*page.(h/cpp)

A controller. :NAMEpage.cpp generally includes :NAMEmodel.h and forms/:NAME.page.ui with a similar :NAME.

*dialog.(h/cpp)

Various dialogs, e.g. to open a URL. Inherit from QDialog.

paymentserver.(h/cpp)

Used to process BIP21 payment URI requests. Also handles URI based application switching (e.g. when following a bitcoin:... link from a browser).

walletview.(h/cpp)

Represents the view to a single wallet.

Other .h/cpp files

  • UI elements like BitcoinAmountField, which inherit from QWidget.
  • bitcoinstrings.cpp: automatically generated
  • bitcoinunits.(h/cpp): BTC / mBTC / etc handling
  • callback.h
  • guiconstants.h: UI colors, app name, etc
  • guiutil.h: several helper functions
  • macdockiconhandler.(h/mm): macOS dock icon handler
  • macnotificationhandler.(h/mm): display notifications in macOS

Contribute

See CONTRIBUTING.md for general guidelines. Specifically for Qt:

Using Qt Creator as IDE

You can use Qt Creator as an IDE. This is especially useful if you want to change the UI layout.

Download and install the community edition of Qt Creator. Uncheck everything except Qt Creator during the installation process.

Instructions for macOS:

  1. Make sure you installed everything through Homebrew mentioned in the macOS build instructions
  2. Use ./configure with the --enable-debug flag
  3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
  4. Enter "bitcoin-qt" as project name, enter src/qt as location
  5. Leave the file selection as it is
  6. Confirm the "summary page"
  7. In the "Projects" tab select "Manage Kits..."
  8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
  9. Select LLDB as debugger (you might need to set the path to your installation)
  10. Start debugging with Qt Creator (you might need to the executable to "bitcoin-qt" under "Run", which is where you can also add command line arguments)