# HG changeset patch # User IBBoard # Date 1266763892 0 # Node ID d6e95d51b9a454a9da10948a2b68153a9033ca57 # Parent f1be1b5091340b943e8dab1bcf19a750376860c7 Re #247: Implement menu options in Qt# app * Hook up basic HTML export (currently seems to cause segfault when adding doc type) diff -r f1be1b509134 -r d6e95d51b9a4 MainWindow.cs --- a/MainWindow.cs Sun Feb 21 13:53:47 2010 +0000 +++ b/MainWindow.cs Sun Feb 21 14:51:32 2010 +0000 @@ -10,6 +10,7 @@ using IBBoard.IO; using IBBoard.Lang; using IBBoard.WarFoundry.API; +using IBBoard.WarFoundry.API.Exporters; using IBBoard.WarFoundry.API.Factories; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Savers; @@ -86,6 +87,7 @@ ConnectMenuAction(layout.actionSaveArmy, DoSaveCurrentArmy); ConnectMenuAction(layout.actionCloseArmy, DoCloseArmy); ConnectMenuAction(layout.actionOpenArmy, DoOpenArmy); + ConnectMenuAction(layout.actionExportBasicHtml, DoExportBasicHTML); } private void ConnectMenuAction(QAction menuAction, SlotFunc method) @@ -415,6 +417,12 @@ layout.actionSaveArmyAs.Enabled = false; layout.actionCloseArmy.Enabled = false; layout.menuExportArmyAs.Enabled = false; + + foreach (QAction exportAction in layout.menuExportArmyAs.Actions()) + { + exportAction.Enabled = false; + } + layout.armyTree.SetModel(new QStandardItemModel()); DisableCategoryButtons(); } @@ -432,6 +440,12 @@ layout.actionSaveArmyAs.Enabled = true; layout.actionCloseArmy.Enabled = true; layout.menuExportArmyAs.Enabled = true; + + foreach (QAction exportAction in layout.menuExportArmyAs.Actions()) + { + exportAction.Enabled = true; + } + FillArmyTree(newArmy); } @@ -544,5 +558,23 @@ get { return preferences; } set { preferences = value; } } + + private void DoExportBasicHTML() + { + log.Debug("Exporting to HTML"); + QFileDialog fileDialog = new QFileDialog(this); + fileDialog.acceptMode = QFileDialog.AcceptMode.AcceptSave; + fileDialog.fileMode = QFileDialog.FileMode.AnyFile; + fileDialog.SetDirectory(new QDir(Environment.GetFolderPath(Environment.SpecialFolder.Personal))); + log.Debug("Requesting export path"); + int result = fileDialog.Exec(); + + if (result == (int)QDialog.DialogCode.Accepted) + { + string path = fileDialog.SelectedFiles()[0]; + log.DebugFormat("Exporting to {0}", path); + WarFoundryHtmlExporter.GetDefault().ExportArmy(CurrentArmy, path); + } + } } } \ No newline at end of file