Skip to content

Conversation

@ericwooshem
Copy link
Contributor

This PR is an extension of #171 that allows the user to edit, create, and delete configurations through XML or GUI. This is a full implementation for #106.

Still working on further testing (and maybe there's hardware devices I missed).
Probably still going to change the GUI slightly, but here's the current state:

image image

(window zoomed out to fit on one screen)

@GraysonTinker
Copy link
Contributor

Wow, this looks amazing! As I said in my original PR, I'd always dreamed of building something like this but no doubt I wouldn't have been able to create something as well-done as what you've made. Kudos to you for making it happen! I guess I'll have to find another project to wrap my FTC career with...

One question I had that isn't immediately apparent from your screenshots or the code: how will the editor act when trying to modify/delete a readonly config?

@ericwooshem
Copy link
Contributor Author

Kudos to you for making it happen!

Thanks ❤️... But I'm sure there's still tons of stuff wrong with it...

I guess I'll have to find another project to wrap my FTC career with...

😭 Sorry oop-

One question I had that isn't immediately apparent from your screenshots or the code: how will the editor act when trying to modify/delete a readonly config?

Oh that's a really good point, I'll go try that.

@ericwooshem
Copy link
Contributor Author

ericwooshem commented Aug 19, 2025

how will the editor act when trying to modify/delete a readonly config?

It currently allows the user to edit and save, but the file will get overwritten when re-uploading TeamCode. I think it would be better if didn't allow editing, I'll look into that.

@qwertychouskie
Copy link
Contributor

how will the editor act when trying to modify/delete a readonly config?

It currently allows the user to edit and save, but the file will get overwritten when re-uploading TeamCode. I think it would be better if didn't allow editing, I'll look into that.

Maybe allow editing, but force the user to save it under a different name?

@ericwooshem
Copy link
Contributor Author

Maybe allow editing, but force the user to save it under a different name?

Oh yeah that makes more sense. Good idea!

Use builtin config write instead of manually overwriting file. Add collapse buttons to hide GUI sections. Allow changing Control Hub Portal name. Started working on read-only logic, WIP.
@ericwooshem
Copy link
Contributor Author

Updates!

  • Fixed the read-only handling: If the config is read-only, it will show up in the list as such, and require the user to save as a new config name.

[Info in config list]
image

[Requires saving under new name]
image

  • Added star for unsaved changes, Added a reset button to reset to the saved config to before current user edits.

[Reset Button]
image

  • Fixed port limits for devices. Does not allow adding past the max number of devices. (Does not check if excess devices are added through xml)

[Motor add button greyed with 4 motors]
image

  • Changed GUI to work with dark mode.

[Dark mode]
image

  • Added Custom Devices, both at hub level and within hub level. This makes any devices that I missed or future devices that don't exist yet still editable.

[Hub level Custom Device]
image

[Within Hub Custom Device]
image

  • Added basic validation to check for:
    • Duplicate names for devices of the same type
    • Duplicate ports for devices of the same type
    • Empty fields
    • Validation does not check for malformed/invalid xml
    • Validation only checks if Type or Keys are empty for custom devices
  • Added force saving in case validation falsely identifies an error

[Validation error popup]
image

  • Added alert popup:
    • Confirm before deleting
    • Confirm before resetting changes
    • Confirm before force saving (bypassing validation)
    • After setting, saving, deleting, or canceling a delete or force save (just as info for user)

[Delete confirm popup (others are similar)]
image

  • Sections can be collapsed to save space on screen.

[Collapsed sections]
image

I can't test right now, but I will record a video of operation when I can.
Likely there are still bugs or things that need changing, but I'm marking for review since it's close to being complete.

@ericwooshem ericwooshem marked this pull request as ready for review September 18, 2025 02:47
@ericwooshem
Copy link
Contributor Author

ericwooshem commented Sep 29, 2025

Demo videos:

Creating and Saving (also collapsing sections):

Screen.Recording.2025-09-28.193049.mp4

Deleting a Config:

Screen.Recording.2025-09-28.183340.mp4

Read Only Config:

Screen.Recording.2025-09-28.192343.mp4

Config Validation:

Screen.Recording.2025-09-28.183654.mp4

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.

4 participants