履歴ビューの保持件数の設定可能
@@ -64,6 +64,14 @@ | ||
64 | 64 | mainForm.FileHistoryManager2.SetValidExtension(historyview2ValidExtensionsString.Text); |
65 | 65 | mainForm.FileHistoryManager2.Save(); |
66 | 66 | system.Option.Application.IsAddItemToHistoryWhenDrag = this.IsAddItemToHistoryWhenDrag.Checked; |
67 | + try { | |
68 | + int num = int.Parse(this.HistoryViewItemMax.Text.ToString()); | |
69 | + if (num <= 250) { | |
70 | + system.Option.HistoryView.ItemMaxNum = num; | |
71 | + } | |
72 | + } catch { | |
73 | + //Exceptionの時は何もしない。元の値のまま | |
74 | + } | |
67 | 75 | |
68 | 76 | //■外部ツールタブ |
69 | 77 | for (int i = 0; i < ExternalToolManager.MaxToolNum; i++) { |
@@ -153,6 +161,7 @@ | ||
153 | 161 | historyview1ValidExtensionsString.Text = MainForm.Instance.FileHistoryManager1.GetValidExtension(); |
154 | 162 | historyview2ValidExtensionsString.Text = MainForm.Instance.FileHistoryManager2.GetValidExtension(); |
155 | 163 | this.IsAddItemToHistoryWhenDrag.Checked = system.Option.Application.IsAddItemToHistoryWhenDrag; |
164 | + this.HistoryViewItemMax.Text = system.Option.HistoryView.ItemMaxNum.ToString(); | |
156 | 165 | |
157 | 166 | //■色タブ |
158 | 167 | colorActiveViewTitle.initialize("アクティブなビューのタイトル", system.Option.Color.ActiveViewTitleText, system.Option.Color.ActiveViewTitleBack); |
@@ -299,7 +299,7 @@ | ||
299 | 299 | if (this.virtualListView.Items.Count > 0) { |
300 | 300 | SetFocusAndSelected(this.virtualListView.Items[0].FilerItem.FullName); |
301 | 301 | } |
302 | - if (this.currentPath == "") { | |
302 | + if (this.currentPath == "" || fullName == "") { | |
303 | 303 | this.fileSystemWatcher.EnableRaisingEvents = false; |
304 | 304 | } else { |
305 | 305 | this.fileSystemWatcher.EnableRaisingEvents = true; |
@@ -1,6 +1,7 @@ | ||
1 | 1 | using System; |
2 | 2 | using System.Collections.Generic; |
3 | 3 | using System.Text; |
4 | +using SCFiler2; | |
4 | 5 | using SCFiler2.Util; |
5 | 6 | |
6 | 7 | namespace SCFiler2.FileSystem { |
@@ -33,7 +34,14 @@ | ||
33 | 34 | } |
34 | 35 | |
35 | 36 | public override string NameWithoutExtension { |
36 | - get { return this.info.VolumeLabel + "(" + this.info.RootDirectory + ")"; } | |
37 | + get { | |
38 | + //フロッピーの時はアクセス時間短縮(A:と決めうち) | |
39 | + if (SCFiler2System.Instance.Option.Application.IsIgnoreFloppyCheck && this.info.Name.StartsWith(@"A:", true, null)) { | |
40 | + return "(" + this.info.RootDirectory + ")"; | |
41 | + } else { | |
42 | + return this.info.VolumeLabel + "(" + this.info.RootDirectory + ")"; | |
43 | + } | |
44 | + } | |
37 | 45 | } |
38 | 46 | |
39 | 47 | public override string Path { |
@@ -35,7 +35,7 @@ | ||
35 | 35 | this.appName.Name = "appName"; |
36 | 36 | this.appName.Size = new System.Drawing.Size(147, 12); |
37 | 37 | this.appName.TabIndex = 0; |
38 | - this.appName.Text = "SCFiler2 Alpha version 0.34"; | |
38 | + this.appName.Text = "SCFiler2 Alpha version 0.35"; | |
39 | 39 | // |
40 | 40 | // okButton |
41 | 41 | // |
@@ -70,6 +70,19 @@ | ||
70 | 70 | } |
71 | 71 | public FileViewOption FileView = new FileViewOption(); |
72 | 72 | |
73 | + public class HistoryViewOption { | |
74 | + public int ItemMaxNum = 30; | |
75 | + | |
76 | + public void Save() { | |
77 | + OptionUtil.Save("HistoryViewOption", this); | |
78 | + } | |
79 | + | |
80 | + public void Load() { | |
81 | + OptionUtil.Load("HistoryViewOption", this); | |
82 | + } | |
83 | + } | |
84 | + public HistoryViewOption HistoryView = new HistoryViewOption(); | |
85 | + | |
73 | 86 | public class ApplicationOption { |
74 | 87 | public bool IsIgnoreFloppyCheck = true; |
75 | 88 | public bool IsMinimizeFormWhenAppStart = false; |
@@ -91,6 +104,7 @@ | ||
91 | 104 | Color.Save(); |
92 | 105 | FileView.Save(); |
93 | 106 | Application.Save(); |
107 | + HistoryView.Save(); | |
94 | 108 | } |
95 | 109 | public void Load() { |
96 | 110 | KeyCommand.Load(); |
@@ -97,6 +111,7 @@ | ||
97 | 111 | Color.Load(); |
98 | 112 | FileView.Load(); |
99 | 113 | Application.Load(); |
114 | + HistoryView.Load(); | |
100 | 115 | } |
101 | 116 | } |
102 | 117 | public OptionClass Option = new OptionClass(); |
@@ -42,6 +42,7 @@ | ||
42 | 42 | this.tabPage3 = new System.Windows.Forms.TabPage(); |
43 | 43 | this.changeDriveByNumkeyCheckbox = new System.Windows.Forms.CheckBox(); |
44 | 44 | this.tabPage7 = new System.Windows.Forms.TabPage(); |
45 | + this.IsHideHistoryViewCheckbox = new System.Windows.Forms.CheckBox(); | |
45 | 46 | this.IsHideDriveToolbarCheckbox = new System.Windows.Forms.CheckBox(); |
46 | 47 | this.label6 = new System.Windows.Forms.Label(); |
47 | 48 | this.excludeExtension = new System.Windows.Forms.TextBox(); |
@@ -97,7 +98,8 @@ | ||
97 | 98 | this.cancel_button = new System.Windows.Forms.Button(); |
98 | 99 | this.ok_button = new System.Windows.Forms.Button(); |
99 | 100 | this.colorDialog = new System.Windows.Forms.ColorDialog(); |
100 | - this.IsHideHistoryViewCheckbox = new System.Windows.Forms.CheckBox(); | |
101 | + this.label18 = new System.Windows.Forms.Label(); | |
102 | + this.HistoryViewItemMax = new System.Windows.Forms.TextBox(); | |
101 | 103 | this.tabControl1.SuspendLayout(); |
102 | 104 | this.tabPage1.SuspendLayout(); |
103 | 105 | this.tabPage2.SuspendLayout(); |
@@ -332,11 +334,21 @@ | ||
332 | 334 | this.tabPage7.Text = "表示"; |
333 | 335 | this.tabPage7.UseVisualStyleBackColor = true; |
334 | 336 | // |
335 | - // IsHideDriveToolbar | |
337 | + // IsHideHistoryViewCheckbox | |
336 | 338 | // |
339 | + this.IsHideHistoryViewCheckbox.AutoSize = true; | |
340 | + this.IsHideHistoryViewCheckbox.Location = new System.Drawing.Point(6, 134); | |
341 | + this.IsHideHistoryViewCheckbox.Name = "IsHideHistoryViewCheckbox"; | |
342 | + this.IsHideHistoryViewCheckbox.Size = new System.Drawing.Size(237, 16); | |
343 | + this.IsHideHistoryViewCheckbox.TabIndex = 7; | |
344 | + this.IsHideHistoryViewCheckbox.Text = "履歴ビューを表示しない (次回起動より有効)"; | |
345 | + this.IsHideHistoryViewCheckbox.UseVisualStyleBackColor = true; | |
346 | + // | |
347 | + // IsHideDriveToolbarCheckbox | |
348 | + // | |
337 | 349 | this.IsHideDriveToolbarCheckbox.AutoSize = true; |
338 | 350 | this.IsHideDriveToolbarCheckbox.Location = new System.Drawing.Point(6, 112); |
339 | - this.IsHideDriveToolbarCheckbox.Name = "IsHideDriveToolbar"; | |
351 | + this.IsHideDriveToolbarCheckbox.Name = "IsHideDriveToolbarCheckbox"; | |
340 | 352 | this.IsHideDriveToolbarCheckbox.Size = new System.Drawing.Size(272, 16); |
341 | 353 | this.IsHideDriveToolbarCheckbox.TabIndex = 6; |
342 | 354 | this.IsHideDriveToolbarCheckbox.Text = "ドライブツールバーは表示しない (次回起動より有効)"; |
@@ -380,6 +392,8 @@ | ||
380 | 392 | // |
381 | 393 | // tabPage4 |
382 | 394 | // |
395 | + this.tabPage4.Controls.Add(this.HistoryViewItemMax); | |
396 | + this.tabPage4.Controls.Add(this.label18); | |
383 | 397 | this.tabPage4.Controls.Add(this.IsAddItemToHistoryWhenDrag); |
384 | 398 | this.tabPage4.Controls.Add(this.label5); |
385 | 399 | this.tabPage4.Controls.Add(this.label4); |
@@ -859,16 +873,22 @@ | ||
859 | 873 | this.colorDialog.AnyColor = true; |
860 | 874 | this.colorDialog.FullOpen = true; |
861 | 875 | // |
862 | - // IsHideHistoryViewCheckbox | |
876 | + // label18 | |
863 | 877 | // |
864 | - this.IsHideHistoryViewCheckbox.AutoSize = true; | |
865 | - this.IsHideHistoryViewCheckbox.Location = new System.Drawing.Point(6, 134); | |
866 | - this.IsHideHistoryViewCheckbox.Name = "IsHideHistoryViewCheckbox"; | |
867 | - this.IsHideHistoryViewCheckbox.Size = new System.Drawing.Size(237, 16); | |
868 | - this.IsHideHistoryViewCheckbox.TabIndex = 7; | |
869 | - this.IsHideHistoryViewCheckbox.Text = "履歴ビューを表示しない (次回起動より有効)"; | |
870 | - this.IsHideHistoryViewCheckbox.UseVisualStyleBackColor = true; | |
878 | + this.label18.AutoSize = true; | |
879 | + this.label18.Location = new System.Drawing.Point(8, 160); | |
880 | + this.label18.Name = "label18"; | |
881 | + this.label18.Size = new System.Drawing.Size(141, 12); | |
882 | + this.label18.TabIndex = 6; | |
883 | + this.label18.Text = "履歴の保持件数(最大250)"; | |
871 | 884 | // |
885 | + // HistoryViewItemMax | |
886 | + // | |
887 | + this.HistoryViewItemMax.Location = new System.Drawing.Point(155, 157); | |
888 | + this.HistoryViewItemMax.Name = "HistoryViewItemMax"; | |
889 | + this.HistoryViewItemMax.Size = new System.Drawing.Size(33, 19); | |
890 | + this.HistoryViewItemMax.TabIndex = 7; | |
891 | + // | |
872 | 892 | // OptionDialog |
873 | 893 | // |
874 | 894 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); |
@@ -981,5 +1001,7 @@ | ||
981 | 1001 | private System.Windows.Forms.Label label16; |
982 | 1002 | private System.Windows.Forms.CheckBox IsHideDriveToolbarCheckbox; |
983 | 1003 | private System.Windows.Forms.CheckBox IsHideHistoryViewCheckbox; |
1004 | + private System.Windows.Forms.TextBox HistoryViewItemMax; | |
1005 | + private System.Windows.Forms.Label label18; | |
984 | 1006 | } |
985 | 1007 | } |
\ No newline at end of file |
@@ -166,6 +166,7 @@ | ||
166 | 166 | private void createListViewItem() { |
167 | 167 | //あらかじめviewItemにインスタンスを設定しておかないと、Selectedの呼び出し時にcreateListViewItem()の循環呼び出しが起こる |
168 | 168 | this.viewItem = new ListViewItem(this.targetItem.NameWithoutExtension);//名前列 |
169 | + | |
169 | 170 | switch (this.targetItem.Type) { |
170 | 171 | case FilerItem.ItemType.Folder: |
171 | 172 | this.viewItem.SubItems.Add("<dir>");//拡張子列 |
@@ -8,7 +8,6 @@ | ||
8 | 8 | private List<FilerItem> historyList = new List<FilerItem>();//履歴を保存するリスト |
9 | 9 | private HistoryView view; //このマネージャと関連付いているビュー |
10 | 10 | private string viewName; //関連するビューの名前 |
11 | - private const int maxListNum = 30; //履歴をいくつまで保存するか | |
12 | 11 | private int loadedItemNum; //loadしたときからアイテム数が減っていたときにiniファイルから消すために読み込み数を保存しておく |
13 | 12 | |
14 | 13 | /// <summary> |
@@ -74,8 +73,9 @@ | ||
74 | 73 | } |
75 | 74 | |
76 | 75 | historyList.Insert(0, registItem); |
77 | - if (historyList.Count > maxListNum) { | |
78 | - historyList.RemoveAt(historyList.Count-1); | |
76 | + int max = SCFiler2System.Instance.Option.HistoryView.ItemMaxNum; | |
77 | + if (historyList.Count > max) { | |
78 | + historyList.RemoveRange(max, historyList.Count - max); | |
79 | 79 | } |
80 | 80 | view.UpdateView(); |
81 | 81 | } |
@@ -87,7 +87,9 @@ | ||
87 | 87 | SettingFile file = SettingFile.Instance; |
88 | 88 | try { |
89 | 89 | int num = file.LoadInt(viewName, "Num", 0); |
90 | - for (int i = 0; i < num; i++) { | |
90 | + | |
91 | + //設定ファイルに必要以上保存されていても、オプション設定値より数が多くならないようにforを回す | |
92 | + for (int i = 0; i < num && i < SCFiler2System.Instance.Option.HistoryView.ItemMaxNum; i++) { | |
91 | 93 | string str = file.Load(viewName, "History" + i); |
92 | 94 | historyList.Add(CreateNewItem(str)); |
93 | 95 | } |
@@ -94,7 +96,7 @@ | ||
94 | 96 | loadedItemNum = num; |
95 | 97 | } catch (Exception) { |
96 | 98 | SCFiler2System.ShowHistoryMessage("[HistoryManager]履歴情報の読み込みに失敗しました"); |
97 | - //不整合があると行けないので全てクリアする | |
99 | + //不整合があるといけないので全てクリアする | |
98 | 100 | historyList.Clear(); |
99 | 101 | loadedItemNum = 0; |
100 | 102 | } |
@@ -108,7 +110,7 @@ | ||
108 | 110 | int index = 0; |
109 | 111 | |
110 | 112 | file.Save(viewName, "Num", historyList.Count.ToString()); |
111 | - for (index = 0; index < historyList.Count; index++) { | |
113 | + for (index = 0; index < historyList.Count && index < SCFiler2System.Instance.Option.HistoryView.ItemMaxNum; index++) { | |
112 | 114 | file.Save(viewName, "History" + index, historyList[index].FullName); |
113 | 115 | } |
114 | 116 | //読み込んだ数より少なかった場合は消す |