* Qt: Adds settings option to showGovernanceTab
* Qt: Adds not-yet-functional Governance tab to UI
* library: adds hook into governance rom node interface
* Qt: WIP: puts CGovernanceObject hashes on Governance tab
WIP: basically ready to be filled out, most of the infra in place
now.
* Qt: Populates Governance table values
Governance table now contains real values for current columns. Display
columns may potentially change.
- want url in table if right click option opens url?
- What set of cols wanted? Show yes/no votes?
- Decide refresh functionality.
- Do we even want filter func? (checkbox show: proposal, trigger, active coming)
* qt: Shows Voting Status on Governance page
Towards DMT like Governance page, now shows voting status, but needs to
look at super blocks to determine if proposal period has passed and show
final funded or unfunded for past proposals.
* Qt: refactor governance tab to use Model-View arch
Refactors the QT Governance tab to use a Model-View architecture. The
list of Proposals is stored in a QAbstractItemModel, and a QTableView is
used to display.
This makes a much cleaner separation of concerns in the implementation.
Also, can now use the QSortFilterProxyModel to get responsive filtering.
Less internal state inside the GovernanceList, critical sections
removed.
- Needs update loop implemented.
- Needs Proposal detail widget implemented.
* qt: adds periodic update to gov proposal list
Periodically update list of governance related proposals.
* qt: populates governancelist voting status column
* qt: governancelist Porposal shows extra info on doubleClick
* qt: governancelist: reorder .cpp impl to match .h
* qt: governancelist: fixup based on CI
- Adds LOCK(cs_main) for call to pGovObj->IsValidLocally.
- retab, removes trailing whitespace in governancelist.{cpp,h}
* qt: clang-format for governancelist
* Fixes
- drop unused include
- use proper univalue "get_" functions
- shorter/translatable statuses
- shorter dates
- add missing css styles
* qt: addresses governancelist code review items
* qt: use enum to name columns of governancelist
* fix: clear context menu before adding new items
* fix: skip potential nullptr proposals
* improve: show proposal url in context menu
* refactor: tweak enum name, make sure it's int starting from 0, use full name
* fix: column count
* improve: make it sortable, sort by start_date by default
* qt: use full col name in voting status col change signal emit
* better sorting
* use mapToSource to fix data fetching
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Add "Appearance Tab" to OptionsDialog and move "Theme" into it
* qt: Add "Font scale" settings to Appearance Tab of OptionsDialog
Allows to scale the font in the same way like with -font-scale.
* qt: Add font weight settings to Appearance tab of OptionsDialog
Allows to set the weight for normal and bold text
* qt: Add font family setting to Appearance tab of OptionsDialog
Allows to choose between system default font or montserrat
* qt: GUIUtil - Maintain a map with supported weights for all fonts.
* qt: Introduce AppearanceWidget
A widget which just wraps all appearance related settings.
Also replaces Appearance settings in OptionsDialog with the introduced widget.
* qt: Introduce initial appearance setup dialog
This will pop up the first time the user starts the DashCore version with the new UI changes.
* qt: Load font related settings in GUIUtil::loadFonts
* qt: Make osDefaultFont global in GUIUtil to fix getFont()
Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront.
* qt: Improve supported weight helpers
Add conversion helpers. and let all of them depend on the currently selected font.
* qt: Default weights based on supported if not all weights are supported
For SystemDefault only because Montserrat has all supported weights.
* qt/test: Fix GUI tests
* Store normal/bold font GUI settings as "pure" (not "supported") values
* Rename supportedWeighti(To/From)Arg to supportedWeight(To/From)Index to better match the logic and avoid confusion with weight(To/From)Arg functions
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
- With nodes coming and going on the network, the network could come to different opinions about who should get paid next in line due to some nodes being flagged as failing a PoSe check. This will have to be fixed by introducing a blockchain based PoSe system, but that's out of the scope of this release. To fix the issues in the interrim, I'm removing PoSe checks for the time being.
- Removed of reference node and replaced with decentralized quorums that pick the masternodes who get paid each block.
- Made a budgeting system, where masternodes can vote on individual budgets and the data is stored perminently on each clients computer