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

Redesign creation dialogs #652

Draft
wants to merge 37 commits into
base: master
Choose a base branch
from

Conversation

GriffinRichards
Copy link
Collaborator

@GriffinRichards GriffinRichards commented Dec 16, 2024

  • Redesigns the New Map dialog for some post-layout-split changes, add some requested features, a collapsible section for all the header data, and add more error checking.
  • Redesigns the New Layout dialog to bring it in line (visually and behaviorally) with the New Map dialog. Similar treatment for the other minor dialogs (tileset, MAPSEC, and map group)
  • Adds a couple new features to the map list, mostly for the context menu that appears when right-clicking (including the requested "Duplicate Map").
  • Porymap no longer assumes a relationship between map/layout names and their constant ID names. As long as both the name and constant name are valid and unique they can be arbitrary.
  • Fix unrecognized map names in Event or Connections data being overwritten.
  • Fix an issue where failing to open a layout could keep a current map open but disable map editing.
  • Fix some post-layout-split regressions in the map image exporter
  • Fix the AdvanceMap importer making some incorrect assumptions about tileset order. It now uses the "New Layout" dialog.
  • Fix some incorrect regular expressions when validating identifier names, and stop leaking their validators.

Among the internal changes, a few notable changes are:

  • Map's members are private now. This was primarily motivated by the need to emit signals when some members change.
  • The forms for the map header (which were shared between the Header tab and the New Map dialog) and for new layouts (shared between the New Map and New Layout dialogs) have been combined into their own classes.
  • The various Advance Map parsing functions were moved to a separate AdvanceMapParser file/namespace.
  • Heal Location and custom attribute parsing were temporarily disabled. They'll be re-enabled by a future pre-release PR when those features are also updated.

TODO:

  • Support Qt5
  • Some dialog scroll bars can appear then disappear briefly when opening (on macOS at least)
  • Save the New Map/Layout dialog geometry in the config?
  • Fix: Editing map symbol names was unintentionally enabled. Either support this or re-disable it.
  • Fix: New message types can block progress if opened while another modal dialog is active.
  • Make it easier to access / edit the in-game names of MAPSECs (i.e., without opening the region map editor)
  • More testing

Closes #136
Closes #335
Closes #550
Closes #556
Closes #596
Closes #614
Closes #651
Addresses the first point in #638

@GriffinRichards GriffinRichards marked this pull request as draft December 23, 2024 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment