#85: Verwerfen im Prompt-Tab setzt Dirty-State und laedt Inhalt neu
Nach Bestaetigung des Verwerfen-Dialogs fehlte der Aufruf, der den Tab-Zustand zuruecksetzt. Neue Methode discardChanges() in GuiPromptEditorTab setzt loadedContent, dirty und Tab-Titel zurueck; ist der Tab sichtbar, wird loadPromptAsync() sofort ausgeloest, sonst greift der bestehende selectedProperty-Listener beim naechsten Oeffnen. GuiConfigurationEditorWorkspace ruft discardChanges() nach positivem Bestaedigungsdialog auf. Neuer Smoke-Test verifiziert das Verhalten. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
@@ -1389,6 +1389,8 @@ public final class GuiConfigurationEditorWorkspace {
|
||||
boolean shouldDiscard = promptEditorTab.confirmDiscardIfDirty();
|
||||
if (!shouldDiscard) {
|
||||
Platform.runLater(() -> tabPane.getSelectionModel().select(oldTab));
|
||||
} else {
|
||||
promptEditorTab.discardChanges();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+19
@@ -154,6 +154,25 @@ public class GuiPromptEditorTab {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verwirft alle ungespeicherten Änderungen und setzt den Tab in den Lade-Bereitschaftszustand.
|
||||
* <p>
|
||||
* Setzt Dirty-State und Tab-Titel zurück. Ist der Tab zum Zeitpunkt des Aufrufs sichtbar,
|
||||
* wird der Prompt-Inhalt sofort neu geladen; andernfalls erfolgt das Laden beim nächsten
|
||||
* Öffnen des Tabs (gesteuert durch den Tab-Selektions-Listener).
|
||||
* <p>
|
||||
* Muss auf dem JavaFX Application Thread aufgerufen werden.
|
||||
*/
|
||||
public void discardChanges() {
|
||||
this.loadedContent = null;
|
||||
this.dirty = false;
|
||||
this.tab.setText(TAB_TITLE);
|
||||
this.saveButton.setDisable(true);
|
||||
if (tab.isSelected()) {
|
||||
loadPromptAsync();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeigt einen Bestätigungsdialog, wenn ungespeicherte Änderungen vorhanden sind.
|
||||
* Gibt {@code true} zurück, wenn die Änderungen verworfen werden dürfen.
|
||||
|
||||
Reference in New Issue
Block a user