Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.GTK
comparison FrmMainWindow.cs @ 23:d661cb257511
Re #86: Initial GTK# GUI (because of Re #53)
* Refactor file saving in to a common method
* Replace fixed location with dialog
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 17 Aug 2009 19:49:05 +0000 |
parents | 2cf1af4c9baf |
children | 01ddadfa9653 |
comparison
equal
deleted
inserted
replaced
22:40485c6e5cb0 | 23:d661cb257511 |
---|---|
699 { | 699 { |
700 bool success = false; | 700 bool success = false; |
701 | 701 |
702 if (CanSave()) | 702 if (CanSave()) |
703 { | 703 { |
704 try | 704 success = SaveArmyToPath(WarFoundryCore.CurrentArmy, loadedArmyPath); |
705 { | |
706 if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, loadedArmyPath)) | |
707 { | |
708 saveArmyButton.Sensitive = false; | |
709 miSaveArmy.Sensitive = false; | |
710 CommandStack.setCleanMark(); | |
711 success = true; | |
712 } | |
713 } | |
714 catch (IOException ex) | |
715 { | |
716 logger.Error("Saving army failed", ex); | |
717 MessageDialog md = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "An error occured while saving the army. Please check the logs for details on what failed"); | |
718 md.Show(); | |
719 } | |
720 } | 705 } |
721 | 706 |
722 return success; | 707 return success; |
723 } | 708 } |
724 | 709 |
725 private bool SaveCurrentArmyAs() | 710 private bool SaveCurrentArmyAs() |
726 { | 711 { |
712 | |
713 FileChooserDialog fileDialog = new FileChooserDialog("Save file as", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept); | |
714 FileFilter filter = new FileFilter(); | |
715 filter.AddPattern("*.army"); | |
716 filter.Name = "WarFoundry Army files (*.army)"; | |
717 fileDialog.AddFilter(filter); | |
718 int response = fileDialog.Run(); | |
719 string filePath = null; | |
720 | |
721 if (response == (int)ResponseType.Accept) | |
722 { | |
723 filePath = fileDialog.Filename; | |
724 } | |
725 | |
726 fileDialog.Hide(); | |
727 fileDialog.Dispose(); | |
728 | |
729 return SaveArmyToPath(WarFoundryCore.CurrentArmy, filePath); | |
730 } | |
731 | |
732 private bool SaveArmyToPath(Army army, string filePath) | |
733 { | |
727 bool success = false; | 734 bool success = false; |
728 | 735 |
729 if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, Constants.UserDataPath+Constants.DirectoryString+"test.army")) | 736 if (filePath!=null) |
730 { | 737 { |
731 miSaveArmy.Sensitive = false; | 738 if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, filePath)) |
732 //bttnSaveArmy.Sensitive = false; | 739 { |
733 CommandStack.setCleanMark(); | 740 miSaveArmy.Sensitive = false; |
734 loadedArmyPath = Constants.UserDataPath+Constants.DirectoryString+"test.army"; | 741 saveArmyButton.Sensitive = false; |
735 success = true; | 742 CommandStack.setCleanMark(); |
736 } | 743 loadedArmyPath = filePath; |
737 else | 744 success = true; |
738 { | 745 } |
739 //MessageBox.Show(this, Translation.GetTranslation("SaveFailed"), Translation.GetTranslation("SaveFailedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error); | 746 else |
740 } | 747 { |
741 | 748 MessageDialog dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Failed to save file to "+filePath); |
749 dialog.Show(); | |
750 dialog.Dispose(); | |
751 } | |
752 } | |
753 //else user cancelled | |
754 | |
742 return success; | 755 return success; |
743 } | 756 } |
744 | 757 |
745 private bool CloseCurrentArmy() | 758 private bool CloseCurrentArmy() |
746 { | 759 { |