# HG changeset patch # User IBBoard # Date 1253963194 0 # Node ID 441cfc4109870b136752a7827af2e5d26addd065 # Parent eab45344cd56de841bbde3d35cbb2a30d168969e Re #86: Complete GTK# UI * Make save buttons enable when a change has been made, whether the file was saved or not * Make the Save button default to "Save As" behaviour if the file hasn't been saved before * Make sure that loaded file path is kept and that it is wiped on file load diff -r eab45344cd56 -r 441cfc410987 FrmMainWindow.cs --- a/FrmMainWindow.cs Mon Sep 21 19:17:27 2009 +0000 +++ b/FrmMainWindow.cs Sat Sep 26 11:06:34 2009 +0000 @@ -391,7 +391,7 @@ protected virtual void OnSaveArmyActivated(object sender, System.EventArgs e) { - SaveCurrentArmy(); + SaveCurrentArmyOrSaveAs(); } protected virtual void OnAddUnitActivated(object sender, System.EventArgs e) @@ -498,6 +498,7 @@ miCloseArmy.Sensitive = newArmy!=null; miSaveArmyAs.Sensitive = newArmy!=null; miExportArmy.Sensitive = newArmy!=null; + loadedArmyPath = null; //New army has no changes, so we can't save it miSaveArmy.Sensitive = false; saveArmyButton.Sensitive = false; @@ -677,18 +678,13 @@ //undoMenuButton.Tooltip = CommandStack.PeekUndoCommand().UndoDescription; } - saveArmyButton.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null && CanSave(); - miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null && CanSave(); - } - - private bool CanSave() - { - return loadedArmyPath!=null && WarFoundryCore.CurrentArmy!=null && WarFoundrySaver.GetSaver()!=null; + saveArmyButton.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null; + miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null; } private bool SaveCurrentArmyOrSaveAs() { - if (CanSave()) + if (loadedArmyPath != null) { return SaveCurrentArmy(); } @@ -727,8 +723,8 @@ { logger.Debug("Loaded army " + army.ID); success = true; + WarFoundryCore.CurrentArmy = army; loadedArmyPath = filePath; - WarFoundryCore.CurrentArmy = army; logger.Debug("Army loading complete"); } else @@ -753,7 +749,7 @@ { bool success = false; - if (CanSave()) + if (loadedArmyPath!=null) { success = SaveArmyToPath(WarFoundryCore.CurrentArmy, loadedArmyPath); } @@ -917,7 +913,7 @@ protected virtual void saveTBButtonActivated (object sender, System.EventArgs e) { - SaveCurrentArmy(); + SaveCurrentArmyOrSaveAs(); } protected virtual void openTBButtonActivated (object sender, System.EventArgs e)