[Qt] massive options/settings rework (no core changes) #3347

pull Diapolo wants to merge 1 commits into bitcoin:master from Diapolo:GUI-options changing 5 files +441 −241
  1. Diapolo commented at 8:15 AM on December 3, 2013: none
    • add new options for database cache and script verification threads
    • add label which displays options that are overridden by command-line parameters
    • proxy settings are not applied on-the-fly anymore and require a client restart (ApplyProxySettings() was removed and was not working very well anyway)
    • re-work options reset and require a client shutdown (as it is much easier to do it this way without having to mess with what can be changed on-the-fly and what needs a restart anyway)
    • options reset now writes default values for every single option
    • when changing an option which requires a client restart display a 10 second warning message in statusLabel (via a QTimer)
    • when applying the changes via ok change that to a persistent message, which is displayed even after closing optionsdialog and re-open it, when no client restart was made
    • remove dialog boxes used when changing language or proxy settings
    • add setRestartRequired() and isRestartRequired() to OptionsModel and use the set function when updating options to signal OptionsDialog when a restart is needed
    • resize optionsdialog a little and add some min sizes for certain GUI elements
    • remove apply button from optionsdialog
    • save and restore optionsdialog window position
    • update nTransactionFee in QSettings with a set -paytxfee value when opening optionsdialog (I'm not sure about this yet, perhaps revert to not updating QSettings and just display current -paytxfee value in optionsdialog.)

    See #2612 for a version, which included several proxy related additions and core changes. This version is Qt-only and should be much easier to test and merge.

  2. laanwj commented at 11:43 AM on December 3, 2013: member

    Cool, thanks for seperating this out from the proxy changes!

  3. Diapolo commented at 1:05 PM on December 3, 2013: none

    You're welcome :). This now needs some more testing from whoever is willing to do it ^^.

  4. laanwj commented at 9:23 AM on December 4, 2013: member

    I intend to get this into 0.9 so I'll do some testing (on ubuntu) as well.

  5. robbak commented at 12:58 PM on December 4, 2013: contributor

    I just tested it on FreeBSD, and, while the current master builds fine, this branch fails in src/qt/optionsmodel.cpp:

    optionsmodel.cpp:234: error: conversion from 'int64_t' to 'const QVariant' is ambiguous /usr/local/include/qt4/QtCore/qvariant.h:429: note: candidates are: QVariant::QVariant(void_) <near match> /usr/local/include/qt4/QtCore/qvariant.h:219: note: QVariant::QVariant(Qt::GlobalColor) <near match> /usr/local/include/qt4/QtCore/qvariant.h:186: note: QVariant::QVariant(const char_) <near match> /usr/local/include/qt4/QtCore/qvariant.h:184: note: QVariant::QVariant(float) /usr/local/include/qt4/QtCore/qvariant.h:183: note: QVariant::QVariant(double) /usr/local/include/qt4/QtCore/qvariant.h:182: note: QVariant::QVariant(bool) sr/local/include/qt4/QtCore/qvariant.h:181: note: QVariant::QVariant(qulonglong) ▽usr/local/include/qt4/QtCore/qvariant.h:180: note: QVariant::QVariant(qlonglong) /usr/local/include/qt4/QtCore/qvariant.h:179: note: QVariant::QVariant(uint) /usr/local/include/qt4/QtCore/qvariant.h:178: note: QVariant::QVariant(int) /usr/local/include/qt4/QtCore/qvariant.h:169: note: QVariant::QVariant(QVariant::Type) <near match>

    Looks like one of the dropped includes missed this one. I haven't done any troubleshooting yet.

  6. Diapolo commented at 7:41 AM on December 5, 2013: none

    Could be I missed a needed type-conversion... I'll take a look. Thanks for reporting.

  7. Diapolo commented at 8:03 AM on December 5, 2013: none

    @robbak Can you retest, I added a missing type-cast in line 234 of optionsmodel.cpp.

  8. robbak commented at 12:37 AM on December 6, 2013: contributor

    @Diapolo Thanks, that fixed it. It builds fine now

  9. Diapolo commented at 10:09 AM on December 6, 2013: none

    @robbak Great it's working now, can you give some feedback when you gathered some experience with the new stuff in this pull :)?

  10. laanwj commented at 11:51 AM on December 9, 2013: member

    Some nits:

    • Map port using UPnP doesn't trigger "restart needed" warning
    • I'd move the "Reset Options" button to the bottom left instead of behind the active command line options, as the current layout implies that it resets the command line options (whereas it resets the options set through the GUI)
    • "This change would require a client restart" -> "This change requires a client restart"
    • Network tab: "Used for reaching peers via:" -> Seems to be always disabled?
    • Size of database cache: needs a unit after it, this is MB AFAIK
  11. Diapolo commented at 10:08 AM on December 10, 2013: none

    @laanwj

    • Map port using UPnP doesn't trigger "restart needed" warning This can be changed on-the-fly AFAIK, see MapPort()
    • I'd move the "Reset Options" button to the bottom left instead of behind the active command line options, as the current layout implies that it resets the command line options (whereas it resets the options set through the GUI) Agreed -> <b>UPDATED</b>
    • "This change would require a client restart" -> "This change requires a client restart" Disagreed, the text is shown before a user confirmes the change... it becomes "Client restart required to activate changes." after clicking OK and re-opening the dialog.
    • Network tab: "Used for reaching peers via:" -> Seems to be always disabled? Yeah this is currently of no use, and relies on core proxy changes... will remove it from this pull. -> <b>REMOVED</b>
    • Size of database cache: needs a unit after it, this is MB AFAIK Agreed -> <b>UPDATED</b>
  12. laanwj commented at 3:00 PM on December 11, 2013: member

    Ok, great. Looks good to me now.

  13. Diapolo commented at 7:11 AM on December 13, 2013: none

    Thanks

  14. laanwj commented at 7:15 AM on December 13, 2013: member

    Would be nice to get some more users to test this. It's a lot of work to test all specific scenarios and individual options.

  15. Diapolo commented at 7:19 AM on December 13, 2013: none

    Indeed, I've been using this for months, I guess I'm of no help anymore ^^. I can just fix known bugs, if found ;).

  16. [Qt] massive options/settings rework (no core changes)
    - add new options for database cache and script verification threads
    - add label which displays options that are overridden by command-line
      parameters
    - proxy settings are not applied on-the-fly anymore and require a client
      restart (ApplyProxySettings() was removed and was not working very well
      anyway)
    - re-work options reset and require a client shutdown (as it is much
      easier to do it this way without having to mess with what can be changed
      on-the-fly and what needs a restart anyway)
    - options reset now writes default values for every single option
    - when changing an option which requires a client restart display a 10
      second warning message in statusLabel (via a QTimer)
    - when applying the changes via ok change that to a persistent message,
      which is displayed even after closing optionsdialog and re-open it, when
      no client restart was made
    - remove dialog boxes used when changing language or proxy settings
    - add setRestartRequired() and isRestartRequired() to OptionsModel and
      use the set function when updating options to signal OptionsDialog
      when a restart is needed
    - resize optionsdialog a little and add some min sizes for certain GUI
      elements
    - remove apply button from optionsdialog
    - save and restore optionsdialog window position
    - update nTransactionFee in QSettings with a set -paytxfee value when
      opening optionsdialog (I'm not sure about this yet, perhaps revert to
      not updating QSettings and just display current -paytxfee value in
      optionsdialog.)
    7e195e8459
  17. BitcoinPullTester commented at 3:54 PM on January 6, 2014: none

    Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/7e195e8459ad741368db6bb574981fccb1707268 for binaries and test log. This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.

  18. laanwj referenced this in commit a036b796d1 on Jan 10, 2014
  19. laanwj merged this on Jan 10, 2014
  20. laanwj closed this on Jan 10, 2014

  21. Diapolo deleted the branch on Jan 10, 2014
  22. Bushstar referenced this in commit c6911354a1 on Apr 8, 2020
  23. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-18 18:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me