Skip to content

Clean Up Redundant Signal Handling in the Namespace Refactor Dialog #22

Description

@FootClanSoldier

Description

The Namespace Refactor dialog’s signal handling and managed assembly reload protection are generally correct. The existing safeguards for UI-reference validation, host reconstruction, and managed assembly recovery should remain in place.

However, there are a few redundant or potentially unnecessary parts that could be simplified in a future cleanup patch without weakening reload safety.

Proposed changes

Remove TextSubmitted handling for the Old Namespace field

_namespaceRefactorOldNamespaceInput is always read-only:

Editable = false

The field does not appear to become editable anywhere in the current implementation. The following signal connection therefore likely has no practical purpose:

_namespaceRefactorOldNamespaceInput.TextSubmitted

Remove:

  • The signal connection in ConnectNamespaceRefactorDialogSignals().
  • The corresponding signal disconnection.
  • The OnNamespaceRefactorOldNamespaceSubmitted(...) callback.

The LineEdit control itself must remain because it is still used to display and retrieve the existing namespace.

Rename the UI-validation method

The method:

AreNamespaceRefactorSignalSourcesValid(...)

validates more than signal sources. It also validates dialogs, labels, inputs, and other UI references.

Rename it to something that better describes its actual responsibility, such as:

AreNamespaceRefactorUiReferencesValid(...)

or another name consistent with the project’s naming conventions.

Update all call sites accordingly.

Consider reducing repetition in signal callbacks

Namespace Refactor signal callbacks frequently use the following combination:

EnsureManagedAssemblyStateCurrent(...)
TryEnsureNamespaceRefactorHost(...)

Consider introducing a small shared helper that performs both steps and returns a valid NamespaceRefactorPluginHost.

This should only be done if it meaningfully improves readability. The following safeguards must not be removed:

  • Managed assembly generation validation.
  • The ability to reconstruct the Namespace Refactor host.
  • NamespaceRefactorPluginHost.IsBoundTo(...).
  • Validation of the current Godot UI references.

Investigate overlapping Enter-key handling

The dialog currently uses both:

Window.SignalName.WindowInput

and:

_namespaceRefactorNewNamespaceInput.TextSubmitted

to confirm the dialog when Enter is pressed.

Investigate whether both signal paths are required or whether WindowInput alone provides consistent behavior.

Manually verify the behavior in Godot while focus is on:

  • The New Namespace field.
  • The existing-namespace dropdown.
  • Both checkboxes.
  • The dialog buttons.
  • The regular Enter key.
  • The numeric keypad Enter key.

Only remove TextSubmitted from the New Namespace field if Enter continues to work consistently from all relevant controls.

Must not be changed

This cleanup must not remove the protections introduced for managed assembly reload recovery.

Keep the following mechanisms:

EnsureManagedAssemblyStateCurrent(...)
TryEnsureNamespaceRefactorHost(...)
NamespaceRefactorPluginHost.IsBoundTo(...)

Also retain the current recovery flow that reconstructs the host around the active Godot UI controls.

Acceptance criteria

  • The unused TextSubmitted signal and callback for the Old Namespace field have been removed.
  • The UI-validation method has a name that accurately describes its responsibility.
  • No duplicate signal connections or invalid disconnection errors occur.
  • Namespace Refactor works before and after a managed assembly reload.
  • The dialog can be opened, cancelled, and confirmed repeatedly.
  • Enter-key handling works from all relevant controls.
  • Host reconstruction and stale-reference protection continue to work as before.
  • The namespace-refactoring result and file-writing behavior remain unchanged.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions