TeamTernate / infinite-music-discs

Tool for adding lots of custom music discs to Minecraft
94 stars 14 forks source link

Advanced editing mode for DiscListEntry #118

Open bradytheinventor opened 10 months ago

bradytheinventor commented 10 months ago

The DiscListEntry component is visually simple with only a couple of editable fields. Add an optional "advanced" mode, hidden by default, with lots of room for very specific customization fields. This is where advanced features like loot table customization or overriding the internal name would go.

https://doc.qt.io/qt-6/ https://doc.qt.io/qt-6/qwidget.html https://doc.qt.io/qt-6/qboxlayout.html

To do:

bradytheinventor commented 10 months ago

@500-internal-server-error Here's a simple UI mockup. It would add a new button next to and similar in style to the DeleteButton of every DiscListEntry widget. So each disc gets its own set of advanced configuration options. imd-advancedconfig-mockup1

When the new button is clicked, the DiscListEntry expands vertically (using QPropertyAnimations similar to the slide in/out of the StatusDisplayWidget toast) to reveal all of the advanced controls. A partial underline separates the "standard" controls from the "advanced" controls to help differentiate them. imd-advancedconfig-mockup2

Some requirements to help clarify further:

500-internal-server-error commented 10 months ago

Thanks for the mockup, could you explain more about the advanced editing mode layout? I see an image, 3 checkboxes, and a texbox, but with no description as to what they're intended to do.

500-internal-server-error commented 10 months ago

Here's my current attempt at implementing the advanced editing screen, currently I'm focusing on getting the components in before working on things like animations, hiding, etc.

bradytheinventor commented 10 months ago

Thanks for the mockup, could you explain more about the advanced editing mode layout? I see an image, 3 checkboxes, and a texbox, but with no description as to what they're intended to do.

Sorry, I should have explained that better. The advanced UI is supposed to be a catchall for any implementation-specific features that get added. I'll keep adding new controls over time, so I just threw in some images to represent what it will look like eventually. For now, the only control that needs to be in the advanced UI is a QFocusLineEdit for your "edit internal name" feature.

500-internal-server-error commented 10 months ago

Branch updated, I have the separator and textbox in there and it is collapsible, but currently it seems to be a class property rather than an object property, and I'm not sure how to fix that. Expanding/collapsing the advanced view seems to only work for the first item on the list.