-
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
Expose init executor instance #37
Conversation
Related bitcoin-core/gui#434 |
Concept ACK. |
b234d28
to
7ce287c
Compare
To elaborate, I'm "Concept ACK" on:
But I'm not sure it is required to expose an A relevant discussion in bitcoin-core/gui#434:
On of the main goals of starting this project is involving Bitcoin Design community in the development process from the day 0. And to achieve it, keeping QML files as simple as possible is important for the project. As were mentioned in #31, with the current approach:
Anyway, as bitcoin-core/gui#434 is merged, this PR requires rebasing on top of the updated sync with the main repo that is currently blocked by #41. |
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.
Currently the designer is already exposed to nodeModel
and nodeModel.startNodeInitializionThread()
. And eventually it will have to be exposed to more stuff since that's the way QML works.
This change at least removes the wiring from InitExecutor
and NodeModel
.
Follow-ups can improve how QML deals with the application state.
It is all about the same object :)
"more stuff" could remain the same single
But it exposes another object into QML code. Having the only object, which is exposed to the QML, has a simple benefit of a guarantee that its internal state, i.e. internal state of the C++ backend, is consistent at anytime. |
7ce287c
to
a48f6db
Compare
This PR exposes
InitExecutor
instance to QML so that we can:The
InitExecutor
is then kept in the main GUI thread (otherwise QML engine complains) and the instance is exposed in the root engine context.This change also removes the "proxy role" of
NodeModel
. Further simplifications/improvements will follow, but I'd like to present this approach first before going forward.