Skip to content

Commit d64fb72

Browse files
committed
Merge branch 'fd5' of https://github.com/fdorg/flashdevelop into fd5
2 parents aba845d + 7064323 commit d64fb72

9 files changed

Lines changed: 98 additions & 5 deletions

File tree

‎External/Plugins/ProjectManager/Controls/RecentProjectsMenu.cs‎

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ namespace ProjectManager.Controls
1414

1515
public class RecentProjectsMenu : ToolStripMenuItem
1616
{
17+
private ToolStripMenuItem cleanItemMenu;
18+
private ToolStripMenuItem cleanItemToolbar;
1719
private ToolStripMenuItem clearItemMenu;
1820
private ToolStripMenuItem clearItemToolbar;
1921
public event ProjectEventHandler ProjectSelected;
@@ -26,10 +28,15 @@ public RecentProjectsMenu() : base(TextHelper.GetString("Label.RecentProjects"))
2628
ToolbarSelector.DisplayStyle = ToolStripItemDisplayStyle.Image;
2729
ToolbarSelector.Image = Icons.Project.Img;
2830
ToolbarSelector.Enabled = false;
29-
string text = TextHelper.GetString("Label.ClearRecentProjects");
30-
clearItemMenu = new ToolStripMenuItem(text);
31+
string cleanLabel = TextHelper.GetString("Label.CleanRecentProjects");
32+
cleanItemMenu = new ToolStripMenuItem(cleanLabel);
33+
cleanItemMenu.Click += delegate { CleanAllItems(); };
34+
cleanItemToolbar = new ToolStripMenuItem(cleanLabel);
35+
cleanItemToolbar.Click += delegate { CleanAllItems(); };
36+
string clearLabel = TextHelper.GetString("Label.ClearRecentProjects");
37+
clearItemMenu = new ToolStripMenuItem(clearLabel);
3138
clearItemMenu.Click += delegate{ ClearAllItems(); };
32-
clearItemToolbar = new ToolStripMenuItem(text);
39+
clearItemToolbar = new ToolStripMenuItem(clearLabel);
3340
clearItemToolbar.Click += delegate { ClearAllItems(); };
3441
RebuildList();
3542
}
@@ -70,8 +77,10 @@ private void RebuildList()
7077
ToolbarSelector.DropDownItems.Add(BuildItem(projectPath, false));
7178
}
7279
DropDownItems.Add(new ToolStripSeparator());
80+
DropDownItems.Add(cleanItemMenu);
7381
DropDownItems.Add(clearItemMenu);
7482
ToolbarSelector.DropDownItems.Add(new ToolStripSeparator());
83+
ToolbarSelector.DropDownItems.Add(cleanItemToolbar);
7584
ToolbarSelector.DropDownItems.Add(clearItemToolbar);
7685
ToolbarSelector.Enabled = Enabled = true;
7786
}
@@ -103,6 +112,12 @@ private ToolStripMenuItem BuildItem(string projectPath, bool showPath)
103112
return item;
104113
}
105114

115+
private void CleanAllItems()
116+
{
117+
FileHelper.FilterByExisiting(PluginMain.Settings.RecentProjects, true);
118+
RebuildList();
119+
}
120+
106121
private void ClearAllItems()
107122
{
108123
PluginMain.Settings.RecentProjects.Clear();

‎FlashDevelop/MainForm.cs‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2305,6 +2305,15 @@ public void ReopenClosed(Object sender, System.EventArgs e)
23052305
OldTabsManager.OpenOldTabDocument();
23062306
}
23072307

2308+
/// <summary>
2309+
/// Clears invalid entries from the old documents list
2310+
/// </summary>
2311+
public void CleanReopenList(Object sender, System.EventArgs e)
2312+
{
2313+
FileHelper.FilterByExisiting(this.appSettings.PreviousDocuments, true);
2314+
ButtonManager.PopulateReopenMenu();
2315+
}
2316+
23082317
/// <summary>
23092318
/// Clears all entries from the old documents list
23102319
/// </summary>

‎FlashDevelop/Managers/ButtonManager.cs‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,11 @@ public static void PopulateReopenMenu()
264264
}
265265
if (Globals.PreviousDocuments.Count > 0)
266266
{
267-
String label = TextHelper.GetString("Label.ClearReopenList");
267+
String cleanLabel = TextHelper.GetString("Label.CleanReopenList");
268+
String clearLabel = TextHelper.GetString("Label.ClearReopenList");
268269
reopenMenu.DropDownItems.Add(new ToolStripSeparator());
269-
reopenMenu.DropDownItems.Add(new ToolStripMenuItem(label, null, new EventHandler(Globals.MainForm.ClearReopenList)));
270+
reopenMenu.DropDownItems.Add(new ToolStripMenuItem(cleanLabel, null, new EventHandler(Globals.MainForm.CleanReopenList)));
271+
reopenMenu.DropDownItems.Add(new ToolStripMenuItem(clearLabel, null, new EventHandler(Globals.MainForm.ClearReopenList)));
270272
reopenMenu.Enabled = true;
271273
}
272274
else reopenMenu.Enabled = false;

‎PluginCore/PluginCore/Helpers/FileHelper.cs‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,33 @@ public static EncodingFileInfo GetEncodingFileInfo(String file)
396396
}
397397
return info;
398398
}
399+
400+
/// <summary>
401+
/// Filters a list of paths so that only those meeting the File.Exists() condition remain.
402+
/// </summary>
403+
public static List<string> FilterByExisiting(List<string> paths, bool logicalDrivesOnly)
404+
{
405+
List<string> toCheck = new List<string>(paths);
406+
if (logicalDrivesOnly)
407+
{
408+
DriveInfo[] driveInfo = DriveInfo.GetDrives();
409+
toCheck = new List<string>(paths);
410+
toCheck.RemoveAll(delegate(string path)
411+
{
412+
foreach (DriveInfo drive in driveInfo)
413+
{
414+
if (path.StartsWith(drive.RootDirectory.ToString()))
415+
return false;
416+
}
417+
return true;
418+
});
419+
}
420+
421+
toCheck.RemoveAll(path => !File.Exists(path));
422+
paths.Clear();
423+
paths.AddRange(toCheck);
424+
return paths;
425+
}
399426
}
400427

401428
/// <summary>

‎PluginCore/PluginCore/Resources/de_DE.resX‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,10 @@ Ansonsten kann Adobe Flash Professional auch zum Überprüfen der Syntax verwend
935935
<data name="FlashDevelop.Label.ClearBreakpoints" xml:space="preserve">
936936
<value>Haltepunkte löschen</value>
937937
</data>
938+
<data name="FlashDevelop.Label.CleanReopenList" xml:space="preserve">
939+
<value>Liste der &amp;zuletzt verwendeten Dateien aufräumen</value>
940+
<comment>Added after 5.0.0</comment>
941+
</data>
938942
<data name="FlashDevelop.Label.ClearReopenList" xml:space="preserve">
939943
<value>Liste der &amp;zuletzt verwendeten Dateien löschen</value>
940944
</data>
@@ -1896,6 +1900,10 @@ Ansonsten kann Adobe Flash Professional auch zum Überprüfen der Syntax verwend
18961900
<data name="ProjectManager.Label.Cancel" xml:space="preserve">
18971901
<value>&amp;Abbrechen</value>
18981902
</data>
1903+
<data name="ProjectManager.Label.CleanRecentProjects" xml:space="preserve">
1904+
<value>&amp;Clean Recent Projects List</value>
1905+
<comment>Liste der zuletzt benutzten Projekte &amp;aufräumen</comment>
1906+
</data>
18991907
<data name="ProjectManager.Label.ClearRecentProjects" xml:space="preserve">
19001908
<value>Liste der zuletzt benutzten Projekte &amp;löschen</value>
19011909
</data>

‎PluginCore/PluginCore/Resources/en_US.resX‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,10 @@ Alternatively, Adobe Flash Professional can also be used for syntax checking - p
917917
<data name="FlashDevelop.Label.ClearBreakpoints" xml:space="preserve">
918918
<value>Clear Breakpoints</value>
919919
</data>
920+
<data name="FlashDevelop.Label.CleanReopenList" xml:space="preserve">
921+
<value>&amp;Clean Recent Files List</value>
922+
<comment>Added after 5.0.0</comment>
923+
</data>
920924
<data name="FlashDevelop.Label.ClearReopenList" xml:space="preserve">
921925
<value>&amp;Clear Recent Files List</value>
922926
</data>
@@ -1883,6 +1887,10 @@ Alternatively, Adobe Flash Professional can also be used for syntax checking - p
18831887
<data name="ProjectManager.Label.Cancel" xml:space="preserve">
18841888
<value>&amp;Cancel</value>
18851889
</data>
1890+
<data name="ProjectManager.Label.CleanRecentProjects" xml:space="preserve">
1891+
<value>&amp;Clean Recent Projects List</value>
1892+
<comment>Added after 5.0.0</comment>
1893+
</data>
18861894
<data name="ProjectManager.Label.ClearRecentProjects" xml:space="preserve">
18871895
<value>&amp;Clear Recent Projects List</value>
18881896
</data>

‎PluginCore/PluginCore/Resources/eu_ES.resX‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,10 @@ Alternatiba gisa, Adobe Flash Professional ere sintaxi egiaztapenerako erabil da
917917
<data name="FlashDevelop.Label.ClearBreakpoints" xml:space="preserve">
918918
<value>Eten-puntuak garbitu</value>
919919
</data>
920+
<data name="FlashDevelop.Label.CleanReopenList" xml:space="preserve">
921+
<value>&amp;Clean Recent Files List</value>
922+
<comment>Added after 5.0.0</comment>
923+
</data>
920924
<data name="FlashDevelop.Label.ClearReopenList" xml:space="preserve">
921925
<value>Azken fitxategien zerrenda garbitu</value>
922926
</data>
@@ -1882,6 +1886,10 @@ Alternatiba gisa, Adobe Flash Professional ere sintaxi egiaztapenerako erabil da
18821886
<data name="ProjectManager.Label.Cancel" xml:space="preserve">
18831887
<value>&amp;Ezeztatu</value>
18841888
</data>
1889+
<data name="ProjectManager.Label.CleanRecentProjects" xml:space="preserve">
1890+
<value>&amp;Clean Recent Projects List</value>
1891+
<comment>Added after 5.0.0</comment>
1892+
</data>
18851893
<data name="ProjectManager.Label.ClearRecentProjects" xml:space="preserve">
18861894
<value>&amp;Azken proiektuen zerrenda garbitu</value>
18871895
</data>

‎PluginCore/PluginCore/Resources/ja_JP.resX‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,10 @@
921921
<data name="FlashDevelop.Label.ClearBreakpoints" xml:space="preserve">
922922
<value>ブレークポイントをクリア</value>
923923
</data>
924+
<data name="FlashDevelop.Label.CleanReopenList" xml:space="preserve">
925+
<value>&amp;Clean Recent Files List</value>
926+
<comment>Added after 5.0.0</comment>
927+
</data>
924928
<data name="FlashDevelop.Label.ClearReopenList" xml:space="preserve">
925929
<value>最近開いたファイルをクリア(&amp;C)</value>
926930
</data>
@@ -1885,6 +1889,10 @@
18851889
<data name="ProjectManager.Label.Cancel" xml:space="preserve">
18861890
<value>キャンセル</value>
18871891
</data>
1892+
<data name="ProjectManager.Label.CleanRecentProjects" xml:space="preserve">
1893+
<value>&amp;Clean Recent Projects List</value>
1894+
<comment>Added after 5.0.0</comment>
1895+
</data>
18881896
<data name="ProjectManager.Label.ClearRecentProjects" xml:space="preserve">
18891897
<value>最近開いたプロジェクトをクリア(&amp;C)</value>
18901898
</data>

‎PluginCore/PluginCore/Resources/zh_CN.resx‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,10 @@
917917
<data name="FlashDevelop.Label.ClearBreakpoints" xml:space="preserve">
918918
<value>清除断点</value>
919919
</data>
920+
<data name="FlashDevelop.Label.CleanReopenList" xml:space="preserve">
921+
<value>&amp;Clean Recent Files List</value>
922+
<comment>Added after 5.0.0</comment>
923+
</data>
920924
<data name="FlashDevelop.Label.ClearReopenList" xml:space="preserve">
921925
<value>清除最近打开的文档列表(&amp;C)</value>
922926
</data>
@@ -1883,6 +1887,10 @@
18831887
<data name="ProjectManager.Label.Cancel" xml:space="preserve">
18841888
<value>取消(&amp;C)</value>
18851889
</data>
1890+
<data name="ProjectManager.Label.CleanRecentProjects" xml:space="preserve">
1891+
<value>&amp;Clean Recent Projects List</value>
1892+
<comment>Added after 5.0.0</comment>
1893+
</data>
18861894
<data name="ProjectManager.Label.ClearRecentProjects" xml:space="preserve">
18871895
<value>清除最近打开的项目列表(&amp;C)</value>
18881896
</data>

0 commit comments

Comments
 (0)