# HG changeset patch # User IBBoard # Date 1265402250 0 # Node ID 72bcf6457227b38c9b556d77051b9362234eb919 # Parent 3d0c9cf1b9245e18b8be7f517abf89104b3a6e3b Re #247: Implement menu options in Qt# app * Implement initial save and save as functionality diff -r 3d0c9cf1b924 -r 72bcf6457227 MainWindow.cs --- a/MainWindow.cs Tue Feb 02 20:56:39 2010 +0000 +++ b/MainWindow.cs Fri Feb 05 20:37:30 2010 +0000 @@ -58,6 +58,8 @@ QObject.Connect(layout.actionCreateArmy, SIGNAL("triggered()"), CreateNewArmy); QObject.Connect(layout.actionUndo, SIGNAL("triggered()"), UndoAction); QObject.Connect(layout.actionRedo, SIGNAL("triggered()"), RedoAction); + QObject.Connect(layout.actionSaveArmyAs, SIGNAL("triggered()"), DoSaveCurrentArmyAs); + QObject.Connect(layout.actionSaveArmy, SIGNAL("triggered()"), DoSaveCurrentArmy); } private void CreateNewArmy() @@ -97,7 +99,7 @@ layout.toolBar.AddSeparator(); } - private void HandleWarFoundryCoreArmyChanged (Army oldValue, Army newValue) + private void HandleWarFoundryCoreArmyChanged(Army oldValue, Army newValue) { CommandStack.Reset(); loadedFilePath = null; @@ -142,9 +144,9 @@ } } - private void HandleCommandStackCommandStackUpdated () + private void HandleCommandStackCommandStackUpdated() { - + layout.actionSaveArmy.Enabled = CommandStack.IsDirty(); } private void UndoAction() @@ -162,6 +164,11 @@ commandStack.Redo(); } } + + private void DoSaveCurrentArmy() + { + SaveCurrentArmy(); + } private bool SaveCurrentArmy() { @@ -182,6 +189,11 @@ return saved; } + private void DoSaveCurrentArmyAs() + { + SaveCurrentArmyAs(); + } + private bool SaveCurrentArmyAs() { bool saved = false; @@ -214,15 +226,14 @@ private string PromptForArmyFilePath() { int result = saveArmyDialog.Exec(); + string path = null; if (result == (int)QDialog.DialogCode.Accepted) { - return saveArmyDialog.SelectedFiles()[0]; + path = saveArmyDialog.SelectedFiles()[0]; } - else - { - return null; - } + + return path; } public GameSystem CurrentGameSystem