Skip to content

Data Model Interface for Qt #1902

@trisyoungs

Description

@trisyoungs

Describe the feature / issue
There are many reasons to use models for managing the viewing and editing of our data in the Dissolve GUI, however there is something of a disconnect in the way we manage data between the CLI "core" code and the Qt GUI.

Can we implement a custom "model" which sits alongside, e.g., a std::vector<CustomData> and provides "row" addition and deletion, read/write access to data, much as a QtAbstractItemModel does, but without any of the Qt? A companion Qt class in the GUI could then be designed to directly use this non-Qt model to achieve the desired result in the GUI. Why bother doing this? I'm thinking this would allow:

  • Parts of the core "CLI" code to edit data and automatically inform Qt (via, e.g., our GUI registering lambda callbacks to "signals" in our custom model) and hence update the GUI without any manual calling of update functions
  • Implementing model/views for stuff in the GUI becomes coherent and simplified, and provides the reverse notification stream to the CLI core.

Metadata

Metadata

Assignees

Labels

Scope: CodebaseRelated to source code management, build etc.Type: EnhancementEnhancement for existing feature

Type

No type

Projects

Status

Codebase

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions