-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend settings component #143
Extend settings component #143
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strong Concept ACK
- I agree with this change for all the reasons explained in the description. Especially because this helps remove redundant code while making the Settings.qml scalable.
- The code changes are complete and exhaustive and completely map the functionality with the master.
- While testing this PR on my laptop (Ubuntu 22.04, Qt version 5.15.3), I observed some key differences from the master.
Testing differences:
- Hovering over links no more shows the edit cursor.
Screenshot:
Master | PR |
---|---|
![]() |
![]() |
- The optionswitch is misaligned from the divider line.
Screenshot:
Master | PR |
---|---|
![]() |
![]() |
There is a few more change that needs to be fixed in master as well, which I would suggest adding to this PR. However, these can be taken up in separate PR as well.
- The button for the Developers option on the About Options page is not right-aligned properly. (Fixed by PR#144)
Edit: #144 fixes the misaligned Developers option arrow.
ac4dbd2
to
0935349
Compare
0935349
to
3b53ae6
Compare
3b53ae6
to
69d0778
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 69d0778, tested on Ubuntu 22.04.
aadee41 qml: introduce ExternalLink control (jarolrod) Pull request description: Control to handle storing and opening of external links. Can be just text or icon, or combination. To be tested with #143 [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/win64/insecure_win_gui.zip?branch=pull/141) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/macos/insecure_mac_gui.zip?branch=pull/141) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/macos_arm64/insecure_mac_arm64_gui.zip?branch=pull/141) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/android/insecure_android_apk.zip?branch=pull/141) ACKs for top commit: hebasto: ACK aadee41, tested on Ubuntu 22.04. Tree-SHA512: 01a1c456607742ac0ec4fe4a575631a9ab6cc6dc263c773ad2673b69534ce0463fcd8915b6fd9f11c32c8e9315fc204e55fec545dfcaddeb6bd337f2a7708ced
69d0778
to
d4db4d1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
re-ACK d4db4d1
97288e2 qml: introduce basic ValueInput control (jarolrod) Pull request description: A basic user input text field. To be tested with #143 [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/win64/insecure_win_gui.zip?branch=pull/142) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/macos/insecure_mac_gui.zip?branch=pull/142) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/macos_arm64/insecure_mac_arm64_gui.zip?branch=pull/142) [](https://api.cirrus-ci.com/v1/artifact/github/bitcoin-core/gui-qml/android/insecure_android_apk.zip?branch=pull/142) ACKs for top commit: hebasto: ACK 97288e2 Tree-SHA512: b4c729f8840c29467301e07772600437cf9e4031aea8d714ca1b6d7950e921eab942757e82af2333c674b4ae389d28ed29e052a30e75488df78c68b9ee8a3ff7
This extends the usability of the settings component so that it is able to load any action item. This means that this component can be used for all settings regardless of what action is meant to be on the right side. This prevents the need for endless mutations on the settings component to accomodate for different use-cases; the information component being one such mutation.
This is no longer needed.
d4db4d1
to
ee82e9c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
re-ACK ee82e9c
Edited PR links in the PR description.
header: qsTr("Version") | ||
actionItem: ExternalLink { | ||
description: qsTr("v22.99.0-1e7564eca8a6 >") | ||
link: "https://bitcoin.org/en/download" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this link or update it to https://bitcoincore.org/
#124 Introduced information.qml which is a mutation of
Setting.qml
but introduces an additional two loaders and respective properties to handle the scenarios where a setting doesn't use an option switch and needs to instead display a link, display an image, or take input.The issue, despite large amounts of duplicate code is that, following this design pattern, we will be introducing a new mutation of
Settings.qml
everytime we have a scenario when there should be something aside from an option switch.Instead of endless mutations,
Settings.qml
can just be made extensible by simply introducing a loader which gives it anactionItem
. anactionItem
is the interact-able element of this setting; that could be an option switch, a url, a text input box, or something completely new.An example of something new, see the current simplification of the
AboutOptions.qml
developer settings button: