From: ttp Date: Sun, 21 Mar 2010 14:26:21 +0000 (+0900) Subject: AppliStation-GUI,ソフトコレクションファイルのエクスポートにファイルの種類を選べる機能を追加 X-Git-Tag: v1.3.4~7^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=766054a533704906284987fa970962bfeeeecfce;p=applistation%2FAppliStation.git AppliStation-GUI,ソフトコレクションファイルのエクスポートにファイルの種類を選べる機能を追加 --- diff --git a/AppliStation/PackageListViewForm.cs b/AppliStation/PackageListViewForm.cs index b72d9f8..5e4dedb 100644 --- a/AppliStation/PackageListViewForm.cs +++ b/AppliStation/PackageListViewForm.cs @@ -315,6 +315,20 @@ namespace AppliStation void SoftCollectionFileExportToolStripMenuItemClick(object sender, EventArgs e) { string pwd = Directory.GetCurrentDirectory(); + string[] softtargets = new string[]{"PCにインストールされたソフト", "AppliStation内でインストールされたソフト", "インストールされたソフトすべて"}; + int softtargetid = softtargets.Length - 1; + + { + AppliStation.Util.OptionDialog optdialog = AppliStation.Util.OptionDialog.createOptionDialog( + "ソフトコレクションファイルに出力するソフトの種類を選択してください。", "エクスポート", "エクスポートするソフト", + System.Drawing.SystemIcons.Question, MessageBoxButtons.OKCancel, + softtargets, softtargets.Length-1); + if (optdialog.ShowDialog(this) != DialogResult.OK) { + return; // canceled + } else if (optdialog.UserInputValue != null) { + softtargetid = (int) optdialog.UserInputValue; + } + } SaveFileDialog fd = new SaveFileDialog(); fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt"; @@ -328,7 +342,18 @@ namespace AppliStation PackageCollectionFileData collectionData = new PackageCollectionFileData(); - collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages()); + switch (softtargetid) { + case 0: // PCにインストール + collectionData.loadPackages(pkgListsMan.SystemInstalledPkgList.GetEnumerator()); + break; + case 1: // AppliStation内にインストール + collectionData.loadPackages(pkgListsMan.InstalledPkgList.GetEnumerator()); + break; + case 2: // すべて + default: + collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages()); + break; + } try { collectionData.saveAs(fd.FileName); diff --git a/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs b/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs index 6b380cf..4fcefa0 100644 --- a/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs +++ b/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs @@ -28,6 +28,20 @@ namespace NaGet.Packages } /// + /// パッケージ名をリストに入れる + /// + /// パッケージ情報 + public void loadPackages(IEnumerator e) where T : Package + { + while(e.MoveNext()) { + T pkg = e.Current; + if (this.IndexOf(pkg.Name) < 0) { + this.Add(pkg.Name); + } + } + } + + /// /// このリストからパッケージのリストを得る /// /// パッケージのリスト