Skip to content

Conversation

@fwdekker
Copy link
Owner

Fixes #305. Fixes #363. Fixes #365. Fixes #366.

Introduces a very large number of changes, paving the way for an eventual v3 release of Randomness. With this PR, users have the ability to create their own data types by combining multiple data types into a new data type in a single interface. This allows users to specify all kinds of data types, ranging from phones numbers to entire lorem ipsum texts.

Instead of creating a programmable template syntax as proposed in #365, the entire process is done in a simple interface. The data types that were present in Randomness v1 and v2 are now known as schemes, and schemes can be combined into templates. A template will concatenate the output of the schemes, thus allowing thorough customisation of the generated outputs. It is also possible to reuse templates in other templates.

Screenshot of phone number configuration
Screenshot of lorem ipsum configuration

While the most important features have been implemented in this branch, version 3.0.0 is not ready for release. There is a very large number of quality-of-life changes that have yet to be implemented, including but not limited to:

  • Resetting individual schemes
  • Improved layout and spacing
  • New primitive data types (e.g. datetime)
  • Array settings per template
  • Improved template/scheme adding mechanism
  • Drag-and-drop support
    and many more.

For now, the changes of the past month will be merged into master because I think they are sufficiently stable. However, I do not consider the current version to be a release candidate.

fwdekker added 30 commits June 18, 2021 18:22
Which means that the UDS system now supports all settings and I can start replacing old systems with UDS.

Additionally, some minor changes were made to the UDS syntax to make it less error-prone.
Basic unified data syntax implementation
Basically breaks the entire settings in order to make way for the new design that will be used to centralise settings into a single UDS dialog, as discussed in #366. At the same time, most parts are not implemented fully yet so the application is now completely broken until then.
Decimals, integers, etc. can no longer be edited directly from the main menu, and their code has had all the boilerplate removed so that they are now "isolated" units that can be embedded into the UDS dialog when the context requires it. I'm not quite sure what to do with arrays, so for now they'll just behave like the UDS dialog.
To make more advantage of the fact that they no longer have to be serialised like they did before, and instead are to be typed out by users.
The goal is now to use JSON to serialise the primitives safely back and forth between its representation of an array of schemes which are individually configured. The interface will consist first of a list of available templates (currently not implemented), and then the list of schemes the template consists of in the next list. Finally, a panel from which the currently-selected scheme can be edited. The second-level list can be used by users to add new schemes, including another template because another template is also a scheme.

A future goal is also to allow users to specify how arrays and repetitions and so on should work together when inserted.
Re-adds some of the optional fields that were removed in a previous commit.
It's currently super duper buggy though, I wouldn't recommend using it.
Not as buggy anymore, but still slow and some features need improvement.
Into a structure that contains much less duplication.
I think I also regressed in terms of several bugs :-(
Most significantly, makes it so that Scheme (formerly Settings) is no longer generic, which makes it much, much easier to use.
Including addition, icons, swapping, etc.
This won't increase coverage, but does actually cover specific requirements set in those methods' documentations. So *true* coverage increases, but the arbitrary number doesn't.
Such as helper classes and such.
...once again. This time to allow TemplateList to be a State but not a Scheme.
@fwdekker fwdekker added the feature New feature or request label Aug 27, 2021
@fwdekker fwdekker added this to the v3.0.0 milestone Aug 27, 2021
@fwdekker fwdekker self-assigned this Aug 27, 2021
...in JetBrains' XML serializer, because it cannot handle Kotlin's immutable lists.
@fwdekker fwdekker merged commit d821e3a into master Aug 27, 2021
@fwdekker fwdekker deleted the dev branch August 27, 2021 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UDS dialog Unified data syntax Allow customization of list popup Add new data types

2 participants