OSDN Git Service

na-get-lib,Fujitsu Scand Allがインストールされている環境下で例外が発生する問題を修正(レジストリのキーのタイプが想定しているのと異なるとき例外...
[applistation/AppliStation.git] / AppliStation / PackageListViewForm.cs
index b72d9f8..5e4dedb 100644 (file)
@@ -315,6 +315,20 @@ namespace AppliStation
                void SoftCollectionFileExportToolStripMenuItemClick(object sender, EventArgs e)\r
                {\r
                        string pwd = Directory.GetCurrentDirectory();\r
+                       string[] softtargets = new string[]{"PCにインストールされたソフト", "AppliStation内でインストールされたソフト", "インストールされたソフトすべて"};\r
+                       int softtargetid = softtargets.Length - 1;\r
+                       \r
+                       {\r
+                               AppliStation.Util.OptionDialog optdialog = AppliStation.Util.OptionDialog.createOptionDialog(\r
+                                       "ソフトコレクションファイルに出力するソフトの種類を選択してください。", "エクスポート", "エクスポートするソフト",\r
+                                       System.Drawing.SystemIcons.Question, MessageBoxButtons.OKCancel,\r
+                                       softtargets, softtargets.Length-1);\r
+                               if (optdialog.ShowDialog(this) != DialogResult.OK) {\r
+                                       return; // canceled\r
+                               } else if (optdialog.UserInputValue != null) {\r
+                                       softtargetid = (int) optdialog.UserInputValue;\r
+                               }\r
+                       }\r
                        \r
                        SaveFileDialog fd = new SaveFileDialog();\r
                        fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
@@ -328,7 +342,18 @@ namespace AppliStation
                                \r
                                PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
                                \r
-                               collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+                               switch (softtargetid) {\r
+                                       case 0: // PCにインストール\r
+                                               collectionData.loadPackages(pkgListsMan.SystemInstalledPkgList.GetEnumerator());\r
+                                               break;\r
+                                       case 1: // AppliStation内にインストール\r
+                                               collectionData.loadPackages(pkgListsMan.InstalledPkgList.GetEnumerator());\r
+                                               break;\r
+                                       case 2: // すべて\r
+                                       default:\r
+                                               collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+                                               break;\r
+                               }\r
                                \r
                                try {\r
                                        collectionData.saveAs(fd.FileName);\r