mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
cmake: Require Qt 6 to build GUI
This commit is contained in:
parent
930b237f16
commit
6d4214925f
12 changed files with 79 additions and 53 deletions
2
.github/ISSUE_TEMPLATE/good_first_issue.yml
vendored
2
.github/ISSUE_TEMPLATE/good_first_issue.yml
vendored
|
@ -28,7 +28,7 @@ body:
|
||||||
id: useful-skills
|
id: useful-skills
|
||||||
attributes:
|
attributes:
|
||||||
label: Useful Skills
|
label: Useful Skills
|
||||||
description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
|
description: For example, “`std::thread`”, “Qt6 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
|
||||||
value: |
|
value: |
|
||||||
* Compiling Bitcoin Core from source
|
* Compiling Bitcoin Core from source
|
||||||
* Running the C++ unit tests and the Python functional tests
|
* Running the C++ unit tests and the Python functional tests
|
||||||
|
|
|
@ -174,7 +174,7 @@ if(BUILD_GUI)
|
||||||
if(BUILD_GUI_TESTS)
|
if(BUILD_GUI_TESTS)
|
||||||
list(APPEND qt_components Test)
|
list(APPEND qt_components Test)
|
||||||
endif()
|
endif()
|
||||||
find_package(Qt 5.11.3 MODULE REQUIRED
|
find_package(Qt 6.2 MODULE REQUIRED
|
||||||
COMPONENTS ${qt_components}
|
COMPONENTS ${qt_components}
|
||||||
)
|
)
|
||||||
unset(qt_components)
|
unset(qt_components)
|
||||||
|
|
|
@ -27,19 +27,6 @@ if(CMAKE_HOST_APPLE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Save CMAKE_FIND_ROOT_PATH_MODE_LIBRARY state.
|
|
||||||
unset(_qt_find_root_path_mode_library_saved)
|
|
||||||
if(DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
|
|
||||||
set(_qt_find_root_path_mode_library_saved ${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# The Qt config files internally use find_library() calls for all
|
|
||||||
# dependencies to ensure their availability. In turn, the find_library()
|
|
||||||
# inspects the well-known locations on the file system; therefore, it must
|
|
||||||
# be able to find platform-specific system libraries, for example:
|
|
||||||
# /usr/x86_64-w64-mingw32/lib/libm.a or /usr/arm-linux-gnueabihf/lib/libm.a.
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
|
|
||||||
|
|
||||||
find_package(Qt${Qt_FIND_VERSION_MAJOR} ${Qt_FIND_VERSION}
|
find_package(Qt${Qt_FIND_VERSION_MAJOR} ${Qt_FIND_VERSION}
|
||||||
COMPONENTS ${Qt_FIND_COMPONENTS}
|
COMPONENTS ${Qt_FIND_COMPONENTS}
|
||||||
HINTS ${_qt_homebrew_prefix}
|
HINTS ${_qt_homebrew_prefix}
|
||||||
|
@ -47,14 +34,6 @@ find_package(Qt${Qt_FIND_VERSION_MAJOR} ${Qt_FIND_VERSION}
|
||||||
)
|
)
|
||||||
unset(_qt_homebrew_prefix)
|
unset(_qt_homebrew_prefix)
|
||||||
|
|
||||||
# Restore CMAKE_FIND_ROOT_PATH_MODE_LIBRARY state.
|
|
||||||
if(DEFINED _qt_find_root_path_mode_library_saved)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ${_qt_find_root_path_mode_library_saved})
|
|
||||||
unset(_qt_find_root_path_mode_library_saved)
|
|
||||||
else()
|
|
||||||
unset(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(Qt
|
find_package_handle_standard_args(Qt
|
||||||
REQUIRED_VARS Qt${Qt_FIND_VERSION_MAJOR}_DIR
|
REQUIRED_VARS Qt${Qt_FIND_VERSION_MAJOR}_DIR
|
||||||
|
|
|
@ -62,13 +62,13 @@ sh/bash: export BDB_PREFIX=[path displayed above]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### GUI Dependencies
|
#### GUI Dependencies
|
||||||
###### Qt5
|
###### Qt6
|
||||||
|
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pkg install qt5-buildtools qt5-core qt5-gui qt5-linguisttools qt5-testlib qt5-widgets
|
pkg install qt6-buildtools qt6-core qt6-gui qt6-linguisttools qt6-testlib qt6-widgets
|
||||||
```
|
```
|
||||||
|
|
||||||
###### libqrencode
|
###### libqrencode
|
||||||
|
|
|
@ -64,13 +64,13 @@ pkgin install db4
|
||||||
```
|
```
|
||||||
|
|
||||||
#### GUI Dependencies
|
#### GUI Dependencies
|
||||||
###### Qt5
|
###### Qt6
|
||||||
|
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pkgin install qt5-qtbase qt5-qttools
|
pkgin install qt6-qtbase qt6-qttools
|
||||||
```
|
```
|
||||||
|
|
||||||
###### libqrencode
|
###### libqrencode
|
||||||
|
|
|
@ -56,13 +56,13 @@ export BDB_PREFIX="[path displayed above]"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### GUI Dependencies
|
#### GUI Dependencies
|
||||||
###### Qt5
|
###### Qt6
|
||||||
|
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pkg_add qtbase qttools
|
pkg_add qt6-qtbase qt6-qttools
|
||||||
```
|
```
|
||||||
|
|
||||||
###### libqrencode
|
###### libqrencode
|
||||||
|
@ -100,7 +100,7 @@ pkg_add python py3-zmq # Select the newest version of the python package if nec
|
||||||
There are many ways to configure Bitcoin Core, here are a few common examples:
|
There are many ways to configure Bitcoin Core, here are a few common examples:
|
||||||
|
|
||||||
##### Descriptor Wallet and GUI:
|
##### Descriptor Wallet and GUI:
|
||||||
This enables descriptor wallet support and the GUI, assuming SQLite and Qt 5 are installed.
|
This enables descriptor wallet support and the GUI, assuming SQLite and Qt 6 are installed.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cmake -B build -DBUILD_GUI=ON
|
cmake -B build -DBUILD_GUI=ON
|
||||||
|
|
|
@ -92,11 +92,9 @@ Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compi
|
||||||
Qt, libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
Qt, libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
brew install qt@5
|
brew install qt@6
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: Building may fail if Qt 6 is installed (`qt` or `qt@6`)
|
|
||||||
|
|
||||||
Note: Building with Qt binaries downloaded from the Qt website is not officially supported.
|
Note: Building with Qt binaries downloaded from the Qt website is not officially supported.
|
||||||
See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714).
|
See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714).
|
||||||
|
|
||||||
|
|
|
@ -73,11 +73,13 @@ GUI dependencies:
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
|
sudo apt-get install qt6-base-dev qt6-tools-dev qt6-l10n-tools
|
||||||
|
|
||||||
|
For Qt 6.5 and later, the `libxcb-cursor0` package must be installed at runtime.
|
||||||
|
|
||||||
Additionally, to support Wayland protocol for modern desktop environments:
|
Additionally, to support Wayland protocol for modern desktop environments:
|
||||||
|
|
||||||
sudo apt install qtwayland5
|
sudo apt install qt6-wayland
|
||||||
|
|
||||||
The GUI will be able to encode addresses in QR codes unless this feature is explicitly disabled. To install libqrencode, run:
|
The GUI will be able to encode addresses in QR codes unless this feature is explicitly disabled. To install libqrencode, run:
|
||||||
|
|
||||||
|
@ -121,11 +123,13 @@ GUI dependencies:
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
the necessary parts of Qt, the libqrencode and pass `-DBUILD_GUI=ON`. Skip if you don't intend to use the GUI.
|
||||||
|
|
||||||
sudo dnf install qt5-qttools-devel qt5-qtbase-devel
|
sudo dnf install qt6-qtbase-devel qt6-qttools-devel
|
||||||
|
|
||||||
|
For Qt 6.5 and later, the `xcb-util-cursor` package must be installed at runtime.
|
||||||
|
|
||||||
Additionally, to support Wayland protocol for modern desktop environments:
|
Additionally, to support Wayland protocol for modern desktop environments:
|
||||||
|
|
||||||
sudo dnf install qt5-qtwayland
|
sudo dnf install qt6-qtwayland
|
||||||
|
|
||||||
The GUI will be able to encode addresses in QR codes unless this feature is explicitly disabled. To install libqrencode, run:
|
The GUI will be able to encode addresses in QR codes unless this feature is explicitly disabled. To install libqrencode, run:
|
||||||
|
|
||||||
|
|
|
@ -11,21 +11,35 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
string(APPEND CMAKE_OBJCXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}")
|
string(APPEND CMAKE_OBJCXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
get_target_property(qt_lib_type Qt5::Core TYPE)
|
get_target_property(qt_lib_type Qt6::Core TYPE)
|
||||||
|
|
||||||
function(import_plugins target)
|
function(import_plugins target)
|
||||||
if(qt_lib_type STREQUAL "STATIC_LIBRARY")
|
if(qt_lib_type STREQUAL "STATIC_LIBRARY")
|
||||||
set(plugins Qt5::QMinimalIntegrationPlugin)
|
set(plugins Qt6::QMinimalIntegrationPlugin)
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
list(APPEND plugins Qt5::QXcbIntegrationPlugin)
|
list(APPEND plugins Qt6::QXcbIntegrationPlugin)
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
list(APPEND plugins Qt5::QWindowsIntegrationPlugin Qt5::QWindowsVistaStylePlugin)
|
list(APPEND plugins Qt6::QWindowsIntegrationPlugin Qt6::QWindowsVistaStylePlugin)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
list(APPEND plugins Qt5::QCocoaIntegrationPlugin Qt5::QMacStylePlugin)
|
list(APPEND plugins Qt6::QCocoaIntegrationPlugin Qt6::QMacStylePlugin)
|
||||||
endif()
|
endif()
|
||||||
qt5_import_plugins(${target}
|
qt6_import_plugins(${target}
|
||||||
INCLUDE ${plugins}
|
INCLUDE ${plugins}
|
||||||
EXCLUDE_BY_TYPE imageformats iconengines
|
EXCLUDE_BY_TYPE
|
||||||
|
accessiblebridge
|
||||||
|
platforms
|
||||||
|
platforms_darwin
|
||||||
|
xcbglintegrations
|
||||||
|
platformthemes
|
||||||
|
platforminputcontexts
|
||||||
|
generic
|
||||||
|
iconengines
|
||||||
|
imageformats
|
||||||
|
egldeviceintegrations
|
||||||
|
styles
|
||||||
|
networkaccess
|
||||||
|
networkinformation
|
||||||
|
tls
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -45,7 +59,7 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS forms)
|
||||||
# to https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py
|
# to https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py
|
||||||
file(GLOB ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} locale/*.ts)
|
file(GLOB ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} locale/*.ts)
|
||||||
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/locale)
|
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/locale)
|
||||||
qt5_add_translation(qm_files ${ts_files})
|
qt6_add_translation(qm_files ${ts_files})
|
||||||
|
|
||||||
configure_file(bitcoin_locale.qrc bitcoin_locale.qrc USE_SOURCE_PERMISSIONS COPYONLY)
|
configure_file(bitcoin_locale.qrc bitcoin_locale.qrc USE_SOURCE_PERMISSIONS COPYONLY)
|
||||||
|
|
||||||
|
@ -128,7 +142,7 @@ set_property(SOURCE macnotificationhandler.mm
|
||||||
)
|
)
|
||||||
target_link_libraries(bitcoinqt
|
target_link_libraries(bitcoinqt
|
||||||
PUBLIC
|
PUBLIC
|
||||||
Qt5::Widgets
|
Qt6::Widgets
|
||||||
PRIVATE
|
PRIVATE
|
||||||
core_interface
|
core_interface
|
||||||
bitcoin_cli
|
bitcoin_cli
|
||||||
|
@ -206,19 +220,33 @@ if(ENABLE_WALLET)
|
||||||
target_link_libraries(bitcoinqt
|
target_link_libraries(bitcoinqt
|
||||||
PRIVATE
|
PRIVATE
|
||||||
bitcoin_wallet
|
bitcoin_wallet
|
||||||
Qt5::Network
|
Qt6::Network
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_DBUS)
|
if(WITH_DBUS)
|
||||||
target_link_libraries(bitcoinqt PRIVATE Qt5::DBus)
|
target_link_libraries(bitcoinqt PRIVATE Qt6::DBus)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(qt_lib_type STREQUAL "STATIC_LIBRARY")
|
if(qt_lib_type STREQUAL "STATIC_LIBRARY")
|
||||||
# We want to define static plugins to link ourselves, thus preventing
|
# We want to define static plugins to link ourselves, thus preventing
|
||||||
# automatic linking against a "sane" set of default static plugins.
|
# automatic linking against a "sane" set of default static plugins.
|
||||||
qt5_import_plugins(bitcoinqt
|
qt6_import_plugins(bitcoinqt
|
||||||
EXCLUDE_BY_TYPE bearer iconengines imageformats platforms styles
|
EXCLUDE_BY_TYPE
|
||||||
|
accessiblebridge
|
||||||
|
platforms
|
||||||
|
platforms_darwin
|
||||||
|
xcbglintegrations
|
||||||
|
platformthemes
|
||||||
|
platforminputcontexts
|
||||||
|
generic
|
||||||
|
iconengines
|
||||||
|
imageformats
|
||||||
|
egldeviceintegrations
|
||||||
|
styles
|
||||||
|
networkaccess
|
||||||
|
networkinformation
|
||||||
|
tls
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -321,8 +349,8 @@ else()
|
||||||
file(GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR}/forms/*.ui)
|
file(GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR}/forms/*.ui)
|
||||||
add_custom_target(translate
|
add_custom_target(translate
|
||||||
COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources}
|
COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources}
|
||||||
COMMAND Qt5::lupdate -no-obsolete -I ${PROJECT_SOURCE_DIR}/src -locations relative ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts
|
COMMAND Qt6::lupdate -no-obsolete -I ${PROJECT_SOURCE_DIR}/src -locations relative ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts
|
||||||
COMMAND Qt5::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts
|
COMMAND Qt6::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts
|
||||||
COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\"en\" target-language=\"en\"|source-language=\"en\"|" -e "/<target xml:space=\"preserve\"><\\/target>/d" ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf
|
COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\"en\" target-language=\"en\"|source-language=\"en\"|" -e "/<target xml:space=\"preserve\"><\\/target>/d" ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf.old
|
COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf.old
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src
|
||||||
|
|
|
@ -88,7 +88,11 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
|
||||||
|
|
||||||
// Coin Control
|
// Coin Control
|
||||||
connect(ui->pushButtonCoinControl, &QPushButton::clicked, this, &SendCoinsDialog::coinControlButtonClicked);
|
connect(ui->pushButtonCoinControl, &QPushButton::clicked, this, &SendCoinsDialog::coinControlButtonClicked);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(6, 7, 0))
|
||||||
|
connect(ui->checkBoxCoinControlChange, &QCheckBox::checkStateChanged, this, &SendCoinsDialog::coinControlChangeChecked);
|
||||||
|
#else
|
||||||
connect(ui->checkBoxCoinControlChange, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlChangeChecked);
|
connect(ui->checkBoxCoinControlChange, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlChangeChecked);
|
||||||
|
#endif
|
||||||
connect(ui->lineEditCoinControlChange, &QValidatedLineEdit::textEdited, this, &SendCoinsDialog::coinControlChangeEdited);
|
connect(ui->lineEditCoinControlChange, &QValidatedLineEdit::textEdited, this, &SendCoinsDialog::coinControlChangeEdited);
|
||||||
|
|
||||||
// Coin Control: clipboard actions
|
// Coin Control: clipboard actions
|
||||||
|
@ -183,8 +187,13 @@ void SendCoinsDialog::setModel(WalletModel *_model)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
connect(ui->customFee, &BitcoinAmountField::valueChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
connect(ui->customFee, &BitcoinAmountField::valueChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(6, 7, 0))
|
||||||
|
connect(ui->optInRBF, &QCheckBox::checkStateChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
|
||||||
|
connect(ui->optInRBF, &QCheckBox::checkStateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||||
|
#else
|
||||||
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
|
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
|
||||||
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||||
|
#endif
|
||||||
CAmount requiredFee = model->wallet().getRequiredFee(1000);
|
CAmount requiredFee = model->wallet().getRequiredFee(1000);
|
||||||
ui->customFee->SetMinValue(requiredFee);
|
ui->customFee->SetMinValue(requiredFee);
|
||||||
if (ui->customFee->value() < requiredFee) {
|
if (ui->customFee->value() < requiredFee) {
|
||||||
|
@ -944,7 +953,11 @@ void SendCoinsDialog::coinControlButtonClicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Coin Control: checkbox custom change address
|
// Coin Control: checkbox custom change address
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(6, 7, 0))
|
||||||
|
void SendCoinsDialog::coinControlChangeChecked(Qt::CheckState state)
|
||||||
|
#else
|
||||||
void SendCoinsDialog::coinControlChangeChecked(int state)
|
void SendCoinsDialog::coinControlChangeChecked(int state)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (state == Qt::Unchecked)
|
if (state == Qt::Unchecked)
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,7 +103,11 @@ private Q_SLOTS:
|
||||||
void refreshBalance();
|
void refreshBalance();
|
||||||
void coinControlFeatureChanged(bool);
|
void coinControlFeatureChanged(bool);
|
||||||
void coinControlButtonClicked();
|
void coinControlButtonClicked();
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(6, 7, 0))
|
||||||
|
void coinControlChangeChecked(Qt::CheckState);
|
||||||
|
#else
|
||||||
void coinControlChangeChecked(int);
|
void coinControlChangeChecked(int);
|
||||||
|
#endif
|
||||||
void coinControlChangeEdited(const QString &);
|
void coinControlChangeEdited(const QString &);
|
||||||
void coinControlUpdateLabels();
|
void coinControlUpdateLabels();
|
||||||
void coinControlClipboardQuantity();
|
void coinControlClipboardQuantity();
|
||||||
|
|
|
@ -20,7 +20,7 @@ target_link_libraries(test_bitcoin-qt
|
||||||
test_util
|
test_util
|
||||||
bitcoin_node
|
bitcoin_node
|
||||||
Boost::headers
|
Boost::headers
|
||||||
Qt5::Test
|
Qt6::Test
|
||||||
)
|
)
|
||||||
|
|
||||||
import_plugins(test_bitcoin-qt)
|
import_plugins(test_bitcoin-qt)
|
||||||
|
|
Loading…
Add table
Reference in a new issue