Skip to content
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

refactor: qml gui #1891

Closed
wants to merge 3 commits into from
Closed

refactor: qml gui #1891

wants to merge 3 commits into from

Conversation

RobBuchananCompPhys
Copy link
Contributor

@RobBuchananCompPhys RobBuchananCompPhys commented May 7, 2024

Beginning of a refactor to create a fully QML-based GUI that can be built using a feature flag in CMake. Aims to get a QML Dissolve main window as a starting point to experiment with redesign.

We may eventually need to break out the Qt Models directory (currently in gui/models) and the QML types register into a destination where it can be accessed by both GUI and QML builds.

@RobBuchananCompPhys RobBuchananCompPhys changed the title Qml gui refactor: qml gui May 7, 2024
@rprospero
Copy link
Contributor

One thing that comes to mind is that it might be better to make the
QML version truly its own target and executable, instead of just being
a switch that gets pulled inside dissolve-gui.cpp.

Advantages

  • No extra preprocessor macro logic in the executable
  • No CMake flag required (just a new target).
  • Easier to make independent changes to each program. This will become important when we start including models to go with the GUI.
  • The CI can compile both executables in one pass and ensure that nothing has broken in either GUI.

Disadvantages

  • Still some duplicate code (e.g. CLI argument handling) that would need to be maintained in both executables
  • I have no idea what to name the new GUI

@trisyoungs
Copy link
Member

trisyoungs commented May 8, 2024

I definitely think the separate executable, as Adam suggested, is the way to go, and have it configurable at build time with a CMake option perhaps?

Bit of duplicate code I can live with for now, but as for the name.... maybe dissolve-gui-qml?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants